我正在将Atom引擎与Django一起使用,当我登录到链接http://127.0.0.1:8000时,我得到了一个csrf错误。我该怎么办?
答案 0 :(得分:0)
For example this is my file form
<form method="post" enctype="multipart/form-data">
{% if makale.makale_foto %}
<img class="img-fluid rounded" src="{{ makale.makale_foto.url }}" alt="">
{% else %}
<div class="alert alert-danger">Fotoğraf Eklenmemiş</div>
{% endif %}
{% csrf_token %} //this is csrf
{{ form|crispy }}
<input type="submit" class="btn btn-info" style="width:100%" value="Kaydet">
</form>
答案 1 :(得分:0)
您的意思是“有很多页面,例如视图,模型,URL”?您对组件(IMHO)的理解有误。
每次发出 HTTP POST 请求时,都应将 csrftoken 发送到服务器。 假设您有一个表单,
<form action="/" method="POST">
<input type="text" name="name" />
<input type="text" name="surname" />
{% csrf_token %} <!-- This template tag generates html "hidden" field with csrf token -->
<input type="submit" value="click" />
</form>
如果要发出 Ajax请求,则还必须在服务器上发送csrftoken,这有很多策略。最重要的是 Django 具有 CsrfMiddleware ,该软件可从 request.POST 和 request.COOKIES 中读取数据并进行比较其他。也有可能避免 csrf 保护。仔细阅读文档。