Python Django-禁止(CSRF令牌丢失或不正确。)
我在创建使用{%csrf_token%}的简单表单时遇到问题 带表单的模板:Python Django-禁止(CSRF令牌丢失或不正确。),python,django,Python,Django,我在创建使用{%csrf_token%}的简单表单时遇到问题 带表单的模板: <form action="{% url 'library:my_view' %}" method="post"> {% csrf_token %} <input type="submit" value="Submit"> </form> views.py def my_view(request): used_method = str(request.m
<form action="{% url 'library:my_view' %}" method="post">
{% csrf_token %}
<input type="submit" value="Submit">
</form>
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令牌丢失或不正确)::/Library/some\u页面
“POST/library/some_page HTTP/1.1”403 2513 或者(当我使用其他浏览器时): 禁止(未设置CSRF cookie)::/library/some_page
“发布 /图书馆/部分图书馆网页HTTP/1.1“403 2868 当我通过
@csrf\u emption
decorator禁用保护时,表单正常工作。哪里有问题
我将非常感谢您的帮助。您正在创建一个空表单。您在表单内部呈现什么?您是否创建了forms.py文件
<form action="{% url 'library:my_view' %}" method="post">
{% csrf_token %}
<input type="submit" value="Submit">
</form>
{%csrf_令牌%}
您的设置中间件列表中是否有“django.middleware.csrf.CsrfViewMiddleware”?是的,我有。这是默认设置。我没有更改。您的设置中是否有CSRF\u COOKIE\u SECURE=True
。py
并通过http而不是https访问您的开发服务器?不知道,您的代码还可以,可能是一些设置、缓存、,或者类似的CSRF\u COOKIE\u SECURE=True/False-无差异会话\u COOKIE\u SECURE=True/False-无差异安全\u SSL\u REDIRECT=False-无差异,True-访问HTTPS,我根本无法连接本地主机。我没有创建任何表单。py文件。我正在使用Django 2.2教程,这个文件还没有介绍。我使用了一个空表单,因为我想用最简单的例子来解释我的问题。这有关系吗?当我添加有作用的输入时,问题看起来是一样的。如果我使用@csrf_-emption,并且不使用已启用的令牌,则该表单可以工作。
<form action="{% url 'library:my_view' %}" method="post">
{% csrf_token %}
<input type="submit" value="Submit">
</form>