私はDjangoでカスタムデコレータを作成しようとしています。 ユーザーがそのページからログインしていない場合、ユーザーをカスタムログインページにリダイレクトしたいと考えています。 私はデコレータを書いて、それをデバッグしました。ユーザーがログインしていない状態でも正常に動作しますが、ログインした後にエラーが発生します。Djangoカスタムデコレータリダイレクトの問題
The view APPNAME.views.home didn't return an HttpResponse object.
私のコードは以下のとおりです。個人的なアルファページの認証後に私のデコレータが単にreturn wraps(func)(inner_decorator)
セクションにジャンプするのはなぜですか?あなたが実際にビューを呼び出していないので、あなたが応答
return render_to_response('homepage.html', context_instance=RequestContext(request))
または応答にレンダリングにレンダリングするためのコンテキストを渡す必要がある
おかげ
def private_alfa_required():
def decorator(func):
def inner_decorator(request,*args, **kwargs):
if 'isPrivateAlfaUser' not in request.session or request.session['isPrivateAlfaUser'] != True:
return render_to_response('homepage.html')
return wraps(func)(inner_decorator)
return decorator
@private_alfa_required()
def home(request):
.....
def home2(request):
.....
私はこのように書いていますが、今度は「APPNAME.main.views」モジュールで試したことがあります。エラー: 'APPNAME.main.views.home'は呼び出し可能ではありません。 '実際に私はデコレータの背後にあるロジックを理解していませんでした。どこに良い文書がありますか? – brsbilgic
あなたの 'views.py'におそらくどこかにエラーがあります。 'home'関数の内容全体を投稿すると、何が問題か分かります。 –