Django.db.utils.IntegrityError: NOT NULL constraint failed: new__inventory_app_item.accounting_class_id
Итак, я работаю над Django-проектом уже некоторое время, и вот-вот закончу его. Я решил добавить в него одну функцию и добавил новый Foreign key в мою модель. Я сделал makemigrations my_app
, но когда я пытаюсь перенести его, появляется эта ошибка:
django.db.utils.IntegrityError: NOT NULL constraint failed: new__inventory_app_item.accounting_class_id
Это модель:
class AccountingClass(models.Model):
name = models.CharField(max_length=150, default="", blank=False)
def __str__(self):
return self.name
а это ссылка на иностранный ключ:
`accounting_class = models.ForeignKey("AccountingClass", on_delete=models.SET_NULL, default="", blank=False, null=True, help_text="The accounting class of the object")`
В чем проблема?
Это означает, что у вас в базе данных есть данные, в которых учетная ссылка класса не имеет значения типа PK. Я подозреваю, что это связано с тем, что вы установили default=""
, который является строкой (varchar). Это можно полностью убрать, так как у вас есть null=True
, поэтому по умолчанию у вас будет null
, когда нет ссылки на бухгалтерский класс.