GET 表单方法的 CSRF 验证错误
CSRF verification error on GET form method
我在尝试提交表单时遇到错误 CSRF verification failed. Request aborted.
。我使用了 GET 方法,但出现错误。我也添加了 {% csrf_token %} 标记,只是为了确定,但错误仍然存在。
样本HTML:
<body>
<form action="/entry/" method="get" name="Form1"><br>
{% csrf_token %}
<select name="Date" size="1">
<option>30</option>
</select>
<select name="Month">
<option>09</option>
</select>
<select name="Year">
<option>2015</option>
</select>
<input id="Save" style="height: 50px; width: 100px;" type="submit" value="Save"></form>
</body>
views.py 文件
def getuser(request):
return render(request, 'index.html')
def putrecord(request):
date = request.GET['Date']
print date
month = request.GET['Month']
year = request.GET['Year']
time_stamp = date + '/' + month + '/' + year
print time_stamp
return render(request, 'index.html', {})
urls.py
urlpatterns = patterns('',
url(r'^expenseapp/', getuser),
url(r'^entry/', putrecord),
)
我的设置文件中也有 CsrfViewMiddleware
。我怎样才能摆脱这个错误?
通过 GET 提交的表单不需要 CSRF 令牌模板标记。简单地从您的表单中删除令牌应该允许它到达您的视图处理程序方法。
类似的问答:Django: POST form requires CSRF? GET doesn't?
尝试从您的浏览器中删除 cookies,CSRF 使用 cookie 来存储令牌。
我在尝试提交表单时遇到错误 CSRF verification failed. Request aborted.
。我使用了 GET 方法,但出现错误。我也添加了 {% csrf_token %} 标记,只是为了确定,但错误仍然存在。
样本HTML:
<body>
<form action="/entry/" method="get" name="Form1"><br>
{% csrf_token %}
<select name="Date" size="1">
<option>30</option>
</select>
<select name="Month">
<option>09</option>
</select>
<select name="Year">
<option>2015</option>
</select>
<input id="Save" style="height: 50px; width: 100px;" type="submit" value="Save"></form>
</body>
views.py 文件
def getuser(request):
return render(request, 'index.html')
def putrecord(request):
date = request.GET['Date']
print date
month = request.GET['Month']
year = request.GET['Year']
time_stamp = date + '/' + month + '/' + year
print time_stamp
return render(request, 'index.html', {})
urls.py
urlpatterns = patterns('',
url(r'^expenseapp/', getuser),
url(r'^entry/', putrecord),
)
我的设置文件中也有 CsrfViewMiddleware
。我怎样才能摆脱这个错误?
通过 GET 提交的表单不需要 CSRF 令牌模板标记。简单地从您的表单中删除令牌应该允许它到达您的视图处理程序方法。
类似的问答:Django: POST form requires CSRF? GET doesn't?
尝试从您的浏览器中删除 cookies,CSRF 使用 cookie 来存储令牌。