"Как исправить ошибку" csrf "в" Django "?" - PullRequest
0 голосов
/ 21 мая 2019

Я использую Django с движком Atom, и когда я захожу по ссылке http://127.0.0.1:8000, появляется сообщение об ошибке csrf.что мне делать?

Ответы [ 2 ]

0 голосов
/ 21 мая 2019

Что вы имеете в виду "Есть много страниц, таких как виды, модели, URL-адреса"? Вы неправильно понимаете компоненты (ИМХО).

Вы должны отправлять csrftoken на сервер каждый раз, когда делаете запрос HTTP POST . Представь, что у тебя есть форма ,,,

<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 Request , вы также должны отправить csrftoken на сервер, для этого существует множество стратегий. Наиболее важным является то, что Django имеет CsrfMiddleware , который считывает данные из request.POST и request.COOKIES и сравнивает друг друга. Также возможно избежать защиты csrf . Внимательно прочитайте документацию.

0 голосов
/ 21 мая 2019
 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>
...