使CSRF中间件在Django的404错误页面中工作

时间:2010-03-19 00:36:09

标签: python django csrf middleware

我在Django项目的404.html中单独设置了一个带有关键字搜索框的登录框,因此如果出现404错误,访问者可以获得更多跳转到其他部分的选项。

但是CSRF中间件在404错误页面中不起作用而没有呈现csrf标记。我尝试将'django.middleware.csrf.CsrfViewMiddleware'移到settings.py中的第一个MIDDLEWARE_CLASSES但是也没有用。

任何人都知道解决方案吗?

2 个答案:

答案 0 :(得分:1)

看起来他们已经在Django http://code.djangoproject.com/ticket/14565

中解决了这个问题

也就是说,它似乎不在最新版本中,所以我创建了一个自定义错误视图,其内容与'django.views.defaults.page_not_found'相同,从而在票证差异文件中找到了更改。

答案 1 :(得分:0)

我的想法是你应该使用your own error handler并使用django.middleware.csrf.get_token()手动生成令牌