Как получить csrf_tokken от django?

У меня есть React приложение, которое содержит свою форму для логирования. На http://127.0.0.1:8000/login/ развёрнут сервер djungo. Из формы на самом сервере я спокойно захожу в кабинет, но когда я пытаюсь войти, получаю в консоль djungo ошибку "Forbidden (CSRF token missing or incorrect.): /login/".

Я понимаю, что куки я нигде и не отправляю. Но как мне это сделать из формы?

Сама форма:

<form method="post"  action="http://127.0.0.1:8000/login/">
  <input
    type="hidden"
    name="csrfmiddlewaretoken"
  />
  <table>
    <tbody>
      <tr>
        <td>
          <label htmlFor="id_username">Имя пользователя:</label>
        </td>
        <td>
          <input
            type="text"
            name="username"
            defaultValue="user"
            autofocus
            required
            id="id_username"
          />
        </td>
      </tr>
      <tr>
        <td>
          <label htmlFor="id_password">Пароль:</label>
        </td>
        <td>
          <input
            type="password"
            name="password"
            required
            id="id_password"
          />
        </td>
      </tr>
    </tbody>
  </table>
  <div className="row">
    <div className="col-auto ml-auto">
      <input
        className="btn btn-sm btn-primary"
        type="submit"
        defaultValue="login"
      />
    </div>
  </div>
</form>

Ответы (1 шт):

Автор решения: Андрей Таков

Решение: примените ajax для передачи данных из формы (React отлично взаимодействует с jquery и ajax). Ниже указан рабочий вариант

views.py

from django.views.decorators.csrf import csrf_protect

@csrf_protect #я использую декоратор на той вьюхе которая требует защиты
def some_view(request):
    ...

example.html

<script>
    var token = '{{csrf_token}}'; #передаем токен из вью

    $.ajax({
      headers: {"X-CSRFToken": token}, #добавляем его в наш запрос
  
      type: "POST",
      url: "/some_view/",
      data: {
        data
      },
      success: function () {
      ...
→ Ссылка