当我点击我的虚拟表单的提交按钮时,我收到以下错误
禁止(403)
CSRF验证失败。请求已中止
我的views.py(已完成上面所需的导入)如下所示:
def search(request):
errors=[]
if request.method=="POST":
if not request.POST['name']:
errors.append('Name field is empty')
if not request.POST['subject']:
errors.append('Subject field is empty')
if not request.POST['age']:
errors.append('Age field is empty')
if not errors:
thank()
return render_to_response('search.html',{'errors':errors},context_instance=RequestContext(request))
def thank(search):
return HttpResponse('<html><p>Post done successfully</p></html>')
我的search.html是:
<form method="post" action='/search/'>
<p>Name: <input type="text" name="name"/></p>
<p>Subject <input type="text" name="subject"/></p>
<p>Age: <input type="text" name="age"/></p>
<input type="submit" value="Hit Me!!"/>
</form>
</body>
</html>
有人请让我知道,我怎样才能克服这个错误?
答案 0 :(得分:0)
那么,
1。将'django.core.context_processors.csrf'添加到settings.py中的TEMPLATE_CONTEXT_PROCESSORS设置。 2.修改你的表格,
<form method="post" action='/search/'>
{% csrf_token %}
<p>Name: <input type="text" name="name"/></p>
<p>Subject <input type="text" name="subject"/></p>
<p>Age: <input type="text" name="age"/></p>
<input type="submit" value="Hit Me!!"/>
</form>
答案 1 :(得分:0)
我要说,我在{% csrf_token %}
标签之间看不到<form></form>
。这将导致CSRF验证失败。上面的海报打败了我。