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.
私はget
とpost
メソッドをオーバーライドした後も、それはまだエラーを投げました。これをどうやって解決するのですか?
あなたは 'super'の前に' return'を忘れました。 – knbk
は素人エラーのようです!ありがとう! – bryansis2010
それは私たちの最高に起こります:) – knbk