我使用Django 1.4。我在与404.html相同的目录中创建了403.html文件(404错误页面工作正常)。是的,我看过this。然后我在我的浏览器中关闭cookie,尝试登录并查看默认的403错误页面,而不是我的403.html页面:
Forbidden (403)
CSRF verification failed. Request aborted.
More information is available with DEBUG=True.
我重新启动了Apache,但它没有帮助。
如何解决?感谢
答案 0 :(得分:8)
这不是默认的403错误页面。您看到此消息是因为禁用cookie时CSRF middleware不起作用。
您的自定义403模板无效,因为CSRF中间件不使用常规403视图,而是使用CSRF_FAILURE_VIEW
设置定义的视图,is defined in django.conf.global_settings为django.views.csrf.csrf_failure
。正如您所看到的in the source,您看到的消息在视图中是硬编码的。
您可以创建自己的CSRF_FAILURE_VIEW
,但这可能不是您想要的。我建议您保留所有内容,只删除cookie或使用其他浏览器作为未经身份验证的用户进行测试。