python - Django - 禁止(CSRF token 丢失或不正确。)

标签 python django

我在创建使用 {% 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/

相关文章:

python - 检查输入 : expected flatten_input to have 3 dimensions, 但获得形状为 (None, 100, 100, 1) 的数组时出错

python - 用户信息未保存

django - Amazon SQS 和 celery 事件(不可序列化的 JSON)

Django,删除文本区域中模板值的初始空间

javascript - AWS 上的 Python 获取远程 IP 地址

python - 类定义 == 有效,但 != 无效

python - 如何在 Django Rest Framework 序列化器中访问初始数据

django - 根据 View 传递的对象 ID 过滤表单上的外键选择选项

python - 如何使用 python websockets 安全地连接到 Bitstamp Websocket v2.0 API?证书验证错误

python - Python 中的 RFC 1123 日期表示?