2016-07-24 8 views
0

ホームページTemplateViewがあると、ログインしたときにユーザーを特定のメインダッシュボードページにリダイレクトしたいのですが、dispatchメソッドでこれを行うことにしました。Django TemplateViewがディスパッチ時にHttpResponseオブジェクトを返しませんでした

class HomeView(FormMixin, TemplateView): 
    template_name = 'home.html' 
    form_class = LoginForm 
    error_message = "" 

    def dispatch(self, request, *args, **kwargs): 
     if request.user.is_authenticated(): 
      redirect_to = settings.LOGIN_REDIRECT_URL 
      return redirect(redirect_to) 
     else: 
      super(HomeView, self).dispatch(request, *args, **kwargs) 

ユーザーがログインすると、コードは正常です。リダイレクトビューにリダイレクトされます。ただし、ユーザーがログインしていないとき、このビューは、次のエラーがスローされます。

ValueError: The view home_app.views.HomeView didn't return an HttpResponse object. It returned None instead. 

私はgetpostメソッドをオーバーライドした後も、それはまだエラーを投げました。これをどうやって解決するのですか?

+3

あなたは 'super'の前に' return'を忘れました。 – knbk

+0

は素人エラーのようです!ありがとう! – bryansis2010

+0

それは私たちの最高に起こります:) – knbk

答えて

0

あなたはそれが返されたときに認証されなかった理由を返しませんでした。

関連する問題