Мне нужно сохранить объект, который содержит файл и некоторые другие данные. Хотя файл хранится в папке /media, объект не сохраняется в базе данных, так как его сохранение вызывает ошибку интеграции.
django.db.utils.IntegrityError: ограничение NOT NULL не удалось: app_eeg.filename
«Имя файла» было полем, которое я удалил, и я уже удалил папку миграции и выполнил следующие команды:
python3 manage.py makemigrations app
python3 manage.py migrate app
Models.py
class EEG(models.Model):
file = models.FileField(null=False)
status = models.BooleanField(default=True)
timestamp = models.DateTimeField(auto_now_add=True)
report = models.ForeignKey(Report, verbose_name=('report'), on_delete=models.CASCADE, related_name='%(class)s_report', null=True)
operator = models.ForeignKey(Operator, verbose_name=('operator'), on_delete=models.CASCADE, related_name='%(class)s_operator', null=False)
patient = models.ForeignKey(Patient, verbose_name=('patient'), on_delete=models.CASCADE, related_name='%(class)s_patient', null=False)
Как я могу исправить эту ошибку?





Удалите столбец из таблицы вручную, подключившись к базе данных. и выполните оператор SQL:
ALTER TABLE app_eeg DROP COLUMN filename;
Вы изменили свою модель, применили ее миграцию к своей БД, затем отменили изменение и удалили файл миграции? Теперь вы хотите отменить изменения, внесенные в БД миграцией, которую вы удалили? Можете ли вы позволить себе потерять данные в своей БД, просто воссоздав их заново?