繁体   English   中英

Django-禁止(CSRF令牌丢失或不正确。)

[英]Django - Forbidden (CSRF token missing or incorrect.)

我在创建使用{%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装饰器禁用保护时,表单可以正常工作。 哪里有问题?

我将不胜感激。

在这里,您正在创建一个空表格。 您在表单内部呈现什么? 您是否创建了forms.py文件?

<form action="{% url 'library:my_view' %}" method="post">
   {% csrf_token %}
   <input type="submit" value="Submit">
</form>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM