按照Django documentation,我们可以设置一个默认的错误处理程序是这样的:如何在django中设置“CSRF验证失败”的默认处理程序?
handler403 = 'mysite.views.my_custom_permission_denied_view'
...
我对404和500处理器是工作的罚款。但在禁止访问的情况下,我无法触发它(当我提出HttpResponseForbidden
时,触发的处理程序是错误500的处理程序)。无论如何,那不是我的问题。我的问题是当我试图篡改(用于测试目的)CSRF
标记时,它会抛出“禁止”,但是,我的处理程序禁止访问 - 不会调用 - 它调用缺省的django模板来禁止403。当我尝试访问static
(或media
)目录的根目录时,被调用的页面来自服务器的默认禁止页面(在我的情况下为apache httpd),这很好。
我的问题是:
- 如何设置默认处理程序 “CSRF验证失败”?
- 403处理程序被调用的情况是什么?
- 如何触发403禁止错误?
这里是我的设置:
- 的Python 3.4
- Django的1.10(生产,调试= FALSE)
- 服务器:Apache httpd的通过mod_wsgi的
- 的Windows 7 32位
的伟大工程。谢谢。 – someone