4个步骤解决这个问题
1,这个错误是由于在middleware中有
'django.middleware.csrf.CsrfViewMiddleware',引起的,去掉它当然能避免这个错误, 但是会引来跨站伪造***。如果有了
'django.middleware.csrf.CsrfResponseMiddleware',的话必须是在csrfview之后, 毕竟是先从view中的request再有response的
2,在form表单中嵌入{%csrf_token%},eg
<form action="." method="post"> {% csrf_token %} </form>
3,引入RequestContext,这下面的方法都行
from django.template import RequestContext
render_to_response('add_publisher.html', RequestContext(request, {'form':form}))
#csrf_context = RequestContext(request, {'form':form})
#return render_to_response('contact.html',csrf_context)
return render_to_response('contact.html',{'form':form}, RequestContext(request) )
return render_to_response('contact.html',{'form':form}, context_instance=RequestContext(request) )
#return render_to_response('contact.html',RequestContext(request, {'form':form}) )
这些方法都是可以的
4,最关键的一点,清除浏览器数据,再清除一次
转载于:https://blog.51cto.com/3502990/1161779