5

私はDjango1.4を使用しています。404.htmlと同じディレクトリに403.htmlファイルを作成しました(404エラーページは正常に機能します)。はい、これを読みました。次に、ブラウザでCookieをオフにし、ログインして、403.htmlページではなく、デフォルトの403エラーページを表示します。

Forbidden (403)
CSRF verification failed. Request aborted.
More information is available with DEBUG=True.

Apacheを再起動しましたが、役に立ちません。

それを修正する方法は?ありがとう

4

1 に答える 1

9

これは、デフォルトの 403 エラー ページではありません。このメッセージが表示されるのは、Cookie が無効になっているとCSRF ミドルウェアが機能しないためです。

CSRF ミドルウェアは一般的な 403 ビューを使用せず、django.conf.global_settingsで として定義されている設定CSRF_FAILURE_VIEWで定義されたビューを使用するため、カスタム 403 テンプレートは効果がありません。sourceでわかるように、表示されているメッセージはビューにハードコードされています。django.views.csrf.csrf_failure

独自の を作成することもできますCSRF_FAILURE_VIEWが、それはおそらくあなたが望むものではありません。すべてをそのままにして、Cookie を削除するか、別のブラウザーを使用して認証されていないユーザーとしてテストすることをお勧めします。

于 2012-12-03T13:42:36.993 に答える