デフォルトでは、デコレータ@permission_required($SOME_PERMISSION)
は、要求しているユーザーがこのビューを要求するために必要なアクセス許可を持っているかどうかを確認します。持っていない場合は、ログイン ページまたはその他の指定されたページにリダイレクトされます (たとえば、ユーザーがログインしていない場合、彼はリダイレクトされます)。ログインページへ)。
これが私の問題です。ログインしていないユーザーをログインページにリダイレクトしたいのですが、必要な権限を持っていないログインユーザーがいる可能性があります。デフォルトでは、そのユーザーはログインページにリダイレクトされており、すでにログインすると、要求したページに再度リダイレクトされ、ここでループが発生します。
したがって、私がやりたいことは、このデコレータの動作を変更して (@permission_required を使用する代わりにビュー関数に同等のコードを記述して)、ユーザーが要求されたページを表示できないためにログインしていないかどうかを確認することです。ログインしているが権限がない場合は、それに応じて正しいページにリダイレクトします。どんな助けでも大歓迎です:)
事前に感謝します
2 に答える
3
次のように、login_url
パラメータをに渡すだけです。permission_required
@permission_required($SOME_PERMISSION, login_url='/my/custom/page')
于 2012-07-30T12:48:00.697 に答える
3
あなたが探しているのはこの答えだと思います:
Django permission_required デコレーターを作成して、すでにログインしているユーザーをログインページにリダイレクトせずにメッセージを表示するにはどうすればよいですか
それが役立つことを願っています!
于 2012-07-30T12:50:16.657 に答える