“如何修复'Django'中的'csrf'错误?”

时间:2019-05-21 06:58:40

标签: django atom-editor

我正在将Atom引擎与Django一起使用,当我登录到链接http://127.0.0.1:8000时,我得到了一个csrf错误。我该怎么办?

2 个答案:

答案 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 保护。仔细阅读文档。