Python CSRF验证失败。请求被中止。(禁止的)(403)DJANGO
我试图从2个不同的下拉列表中获取帖子,我从帖子中获取了参数,但是我遇到了CSRF令牌的问题 index.htmlPython CSRF验证失败。请求被中止。(禁止的)(403)DJANGO,python,django,security,token,Python,Django,Security,Token,我试图从2个不同的下拉列表中获取帖子,我从帖子中获取了参数,但是我遇到了CSRF令牌的问题 index.html <form method="post" action="/getdata/">{% csrf_token %} <select name="Lista"> <option selected="selected" disabled>Objects on page:</option> <opti
<form method="post" action="/getdata/">{% csrf_token %}
<select name="Lista">
<option selected="selected" disabled>Objects on page:</option>
<option value="10">10</option>
<option value="20">20</option>
<option value="30">30</option>
<option value="40">40</option>
<option value="50">50</option>
</select>
<select name="Lista2">
<option selected="selected" disabled>Objects on page:</option>
<option value="10">10</option>
<option value="20">20</option>
<option value="30">30</option>
<option value="40">40</option>
<option value="50">50</option>
</select>
<input type="submit" value="Select">
</form>
models.py
from django.db import models
class Lista (models.Model):
num_lista_1 = models.CharField(max_length=100, null=True)
num_lista_2 = models.CharField(max_length=100, null=True)
def __unicode__(self):
return self.num_lista_1
我已通过以下方式激活cookies…要使用,您需要使用请求对象呈现模板:
template = loader.get_template('index.html')
return HttpResponse(template.render(request=request))
如果在任何地方使用render
,您的代码将更加一致:
return render(request, 'index.html')
要修复[view]未返回HttpResponse
错误,您需要确保索引视图始终返回HttpResponse
。当表单无效时,对于POST请求返回None
。在Django,通常会执行以下操作:
def index(request):
if request.method == 'POST':
...
form = FormsLista()
return render(request, 'index.html', {'form': form})
然后,在模板中,可以显示表单错误。有关更多信息,请参阅上的文档。我尝试了两种选项。。。但是我得到了这个错误视图tutorial.views.index没有返回HttpResponse对象。它没有返回任何结果。。。那是另一个问题。正如错误所示,您始终需要返回响应。看看当
if request.method=='POST':
但是表单无效时会发生什么。它工作了。。。但我不明白为什么我的帖子总是无效。。。有什么想法吗?如果你看表单.错误
它应该会给你一个提示。如果你仍然被困,请问一个新问题,因为这是一个单独的问题。
def index(request):
if request.method == 'POST':
...
form = FormsLista()
return render(request, 'index.html', {'form': form})