2010-12-03 5 views
4

権限で保護されたページにアクセスしようとするとDjangoがログインページにリダイレクトされるのはなぜですか? 403を上げる方が理にかなっていませんか?次に、403.htmlに(カスタムミドルウェアを使用して)意味のあるメッセージを表示して、ユーザーにアクションを実行する権限がないことを伝えることができました。また、私は最初の場所や禁止されたリソースにアクセスしようとしているユーザーでも表示すべきではないビューへのリンクを識別することができます。Django - ログインページにリダイレクトすると対403

答えて

2

login_requiredデコレータについて話している場合は、にはを使用する理由はありません。あなたは探しているものと同じようなデコレータを書くことができます(403応答を返します)。

残念ながら、login_required decorator codeは実際にはやや複雑なので、リダイレクト部分は実際にはuser_passes_test機能内にあるため、必要に応じてコピー/修正するのは簡単ではありません。

+0

これは、permission_requiredデコレータの詳細です。私はカスタムデコレータを書くことができる、私は同意する。 私の質問は、これは標準のジャンゴ処理ではないでしょうか?私はアクセス権がありません、私はログインしています - 403を送信し、開発者は403.htmlを定義しなければなりません。 – Tomas

+0

その場合は、[チケット5515](http://code.djangoproject.com/ticket/5515)または[このカスタムミドルウェア](http://chronosbox.org/blog/manipulando-erros-http-403)を確認してください。 -permissao-negada-no-django?lang = en) –

+0

ありがとうございます。私はカスタムミドルウェアを使うことにしました。私はちょうどDjangoがカスタムミドルウェアなしで403をサポートしていればいいと思った。 – Tomas

関連する問題