我在创建使用 {% csrf_token%} 的简单表单时遇到问题。
带有表单的模板:
<form action="{% url 'library:my_view' %}" method="post">
{% csrf_token %}
<input type="submit" value="Submit">
</form>
url.py
urlpatterns = [
# ...
path('some_page', views.my_view, name='my_view'),
]
View .py
def my_view(request):
used_method = str(request.method)
return render(request, 'library/some_template.html', {'test': used_method})
带有结果的模板(some_template.html):
{{测试}}
服务器给我消息:
Forbidden (CSRF token missing or incorrect.): / Library / some_page
"POST / library / some_page HTTP / 1.1" 403 2513
或者(当我使用不同的浏览器时):
Forbidden (CSRF cookie not set.): /library/some_page
"POST /library/some_page HTTP/1.1" 403 2868
当我禁用 @csrf_exempt
装饰器的保护时,表单可以正常工作。哪里有问题?
如果有任何帮助,我将不胜感激。
最佳答案
这里您正在创建一个空表单。你在表单中渲染什么?您是否创建了 forms.py 文件?
<form action="{% url 'library:my_view' %}" method="post">
{% csrf_token %}
<input type="submit" value="Submit">
</form>
关于python - Django - 禁止(CSRF token 丢失或不正确。),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57049116/