解决Django 提交表单时403错误:CSRF verification failed. Request aborted .


Django版本1.5.9 html表单提交时出现403错误:

CSRF verification failed. Request aborted .

解决办法:

一、

settings.py,在 MIDDLEWARE_CLASSES 中注释掉 'django.middleware.csrf.CsrfViewMiddleware',

二、

1.检查settings.py,发现在 MIDDLEWARE_CLASSES 中添加 'django.middleware.csrf.CsrfViewMiddleware', 选项

发现在django1.5.9里已默认开启。

2.在模板的form体里面,加入 {% csrf_token %}   例如:

<       form       action       =       ""       method       =       "POST"       >      


       {% csrf_token %}      


       ......      


       .....      


       </       form       >

3.在view里面,强制使用RequestContext 代替Context。示例如下:

from django.template import RequestContext

视图返回要这样:

return        render_to_response(‘index.html’,       


              {       'param1′: '       aaa       ','       param2′:        'bbb'       ,},      


              context_instance       =       RequestContext(request)       


              )

解决