我在创建使用{%csrf_token%}的简单表单时遇到问题。
模板的形式:
<form action="{% url 'library:my_view' %}" method="post">
{% csrf_token %}
<input type="submit" value="Submit">
</form>
urls.py
urlpatterns = [
# ...
path('some_page', views.my_view, name='my_view'),
]
views.py
def my_view(request):
used_method = str(request.method)
return render(request, 'library/some_template.html', {'test': used_method})
带有结果的模板(some_template.html):
{{test}}
服务器给我消息:
禁止(CSRF令牌丢失或不正确。):/库/ some_page
“ POST /库/ some_page HTTP / 1.1” 403 2513
或(当我使用其他浏览器时):
禁止(未设置CSRF cookie。):/ library / some_page
“ POST / library / some_page HTTP / 1.1“ 403 2868
当我通过@csrf_exempt
装饰器禁用保护时,表单可以正常工作。哪里有问题?
我将不胜感激。
答案 0 :(得分:0)
这里您正在创建一个空表格。您在表单内部呈现什么?您是否创建了forms.py文件?
<form action="{% url 'library:my_view' %}" method="post">
{% csrf_token %}
<input type="submit" value="Submit">
</form>