CSRF-проверка не удалась: токен не сохраняется между GET и POST? Django

Я проверил много старых вопросов по CSRF, но они, похоже, были заданы 5+ лет назад, и многие решения не применимы, поскольку теперь они обрабатываются с помощью render() или других встроенных методов. Итак, вот мой вопрос:

Я отображаю шаблон формы из представления на основе класса. Он загружается нормально, когда я выполняю начальный GET-запрос, но когда я пытаюсь отправить форму, она выдает ошибку 403: CSRF verification failed.

Я не уверен, почему это происходит - мне кажется, что я все делаю правильно. Может ли это быть связано с тем, что сохраненные cookies, которые переопределяют CSRF токен, изменяются каждый раз, когда вызывается render? Вот мой код:

class Intake(View):
    form_class = IntakeFormSimple
    template_name = "intake.html"

    def get(self, req: HttpRequest):
        form = self.form_class(None)
        return render(req, self.template_name, {"form": form})

    def post(self, req: HttpRequest):
        form = self.form_class(req.POST)
        if form.is_valid():
            return HttpResponse("submitted form!")
        return render(req, self.template_name, {"form": form})

и шаблон формы (шаблон удален для ясности):

<body>
    <section class="section">
      <div class="container">
        <form action="" method="post" novalidate>
          {% csrf_token %} {{ form.non_field_errors }} {% for field in form %}
          <div class="field">
            <label class="label" for="{{field.id_for_label}}"
              >{{field.label}}</label
            >
            <div class="control">{{field}}</div>
            {% if field.help_text %}
            <p class="help">{{field.help_text}}</p>
            {% endif %}
            <ul class="errorlist">
              {% for error in field.errors %}
              <li class="is-danger help">{{error}}</li>
              {% endfor %}
            </ul>
          </div>
          {% endfor %}
          <input type="submit" />
        </form>
      </div>
    </section>
  </body>

Вы можете использовать следующее:

#in views.py

from django.views.decorators.csrf import csrf_exempt

@csrf_exempt
def myView(request):
  #your code
Вернуться на верх