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))。