CSRF验证失败. 相应中断.
1).首先,我们可以先看一下出现问题的所在的原因。
- Your browser is accepting cookies.
- The view function passes a
request
to the template'srender
method. - In the template, there is a
{% csrf_token %}
template tag inside each POST form that targets an internal URL. - If you are not using
CsrfViewMiddleware
, then you must usecsrf_protect
on any views that use thecsrf_token
template tag, as well as those that accept the POST data.
2),不难发现,我们是在上面的问题中有一个{% csrf_token %},这是一个网络漏洞,在所有的表单的提交中,都需要添加,而且,必须放在format 后面。
接着,我们应该查找一下seting 中的MIDDLEWARE_CLASSES 是否缺少了 django.middleware.csrf.CsrfViewMiddleware这也可能是造成出错的原因。
3).在app 中的views 中可以添加一个from django.template import RequestContext,然后,渲染函数render添加即可。例如:return render(req,'df_user/login.html',context_instance=RequestContext(req))。