Проверка CSRF не удалась после добавления поля filefield в модели

У меня странная проблема.
У меня есть приложение, в котором моя модель была в полном порядке, пока я не добавил к ней поле Filefield.

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

enter image description here

Это моя модель:

class Municipality(models.Model):
    activate_date = models.DateField()
    deactivate_date = models.DateField()
    code = models.CharField(max_length=200)
    name = models.CharField(max_length=200)
    alt_name = models.CharField(max_length=200, blank=True, null=True)
    logo = models.FileField( upload_to='Logo/muni', max_length=200, blank=True, null=True)

Мое приложение установлено на AWS с использованием AWS Lambda, S3 и других необходимых сервисов

Мой S3 bucket (куда должен быть загружен мой файл) определен в моем settings.py файле с переменной env, которая была определена в переменных окружения AWS Lambda

AWS_STORAGE_BUCKET_NAME = env('AWS_STORAGE_BUCKET_NAME', default=None)

Я не понимаю, почему моя модель не сохраняется, даже если я не включаю файл.

Странно то, что когда я работаю локально, он не выдает мне эту ошибку. И я могу сохранить эту модель с загрузкой файла или без нее.

Другие модели, где не определено поле файла или поле изображения, прекрасно работают онлайн и локально.

Есть ли причины, по которым я получаю эту ошибку при попытке добавить поле файла или поле изображения?

При использовании models.FileField в Django, ключевым моментом является объявление enctype следующим образом:

<form enctype="multipart/form-data" action="" method="post">
  ...
  {% csrf_token %}
  ...
</form>

Смотрите здесь.

  1. Попробуйте очистить cookies и обновить
  2. Проверьте, есть ли у вас django.middleware.csrf.CsrfViewMiddleware в вашем middleware
  3. .
  4. Проверьте, что вы находитесь на https или у вас есть CSRF_COOKIE_SECURE=False

В первую очередь необходимо проверить, отменив изменения, внесенные в модель. Если проблема не исчезла, возможно, вы внесли изменения в другом месте. Также попробуйте сделать это с другого устройства и под другой учетной записью (даже после очистки cookies/жесткой перезагрузки браузеры иногда ведут себя неожиданно). Вы также можете попробовать ответы по этим ссылкам ( ссылка 1, ссылка 2)

Проверка html-источника может помочь. Также, если вы используете пользовательские формы администрирования django, проверьте их еще раз, не требуют ли они каких-либо изменений. Использование @csrf_exempt при опробовании различных сценариев может помочь вам понять, действительно ли эта ошибка вызвана csrf или есть другая проблема.

Также смотрите это в django docs.

Вернуться на верх