5

我使用 Django 1.4。我在与 404.html 相同的目录中创建了 403.html 文件(404 错误页面工作正常)。是的,我读过这个。然后我在浏览器中关闭 cookie,尝试登录并看到默认的 403 错误页面,而不是我的 403.html 页面:

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

我重新启动了 Apache,但它没有帮助。

如何解决?谢谢

4

1 回答 1

9

这不是默认的 403 错误页面。您看到此消息是因为CSRF 中间件在禁用 cookie 时不起作用。

你自定义的 403 模板没有效果,因为 CSRF 中间件使用的不是一般的 403 视图,而是设置定义的视图,CSRF_FAILURE_VIEWdjango.conf.global_settings 中定义django.views.csrf.csrf_failure. 正如您在源代码中看到的,您看到的消息在视图中是硬编码的。

您可以创建自己的CSRF_FAILURE_VIEW,但这可能不是您想要的。我建议您保留所有内容并删除 cookie 或使用其他浏览器以未经身份验证的用户身份进行测试。

于 2012-12-03T13:42:36.993 回答