3
私は、ユーザーが(たとえばuser.is_authenticated
用)、いくつかの条件を満たしているかどうかをチェックして、この条件が成立しない場合、彼らは別のページにリダイレクトされようとしている独自のデコレータを作成しようとしています(第2パラメータ)。ジャンゴ - カスタムデコレータ - 塗りつぶされていないパラメータ
問題は、それが別のパラメータ(ビュー機能を)望んでいるので、デコレータが動作しないということです。
from django.http import HttpResponseRedirect
from django.core.urlresolvers import reverse
def condition_or_redirect(view_func, condition, redirect_to):
def wrapped(request, *args, **kwargs):
if not condition(request.user):
return HttpResponseRedirect(reverse(redirect_to))
else:
return view_func(request, *args, **kwargs)
return wrapped
その後、私はそれを使用したい:
@condition_or_redirect(lambda x: not x.is_authenticated,'homepage')
def some_view....
コードの何が問題になっているのですか?私はそれがしたいことがあるview_func最初のパラメータを知っているが、私はそれがデコレータ自体によって追加されていることを考えました。