Поле ForeignKey модели поднимает событие ограничения not-null с установленным `default=`.
Моя модель :
def Maker(models.Model):
name = models.CharField()
def get_default_maker():
default_maker, created = Maker.objects.get_or_create(name="noname")
return default_maker.pk
class Item(models.Model):
maker = models.ForeignKey(
Maker,
verbose_name="Maker",
on_delete=models.SET(get_default_maker),
default=get_default_maker
)
У меня есть Maker
экземпляр-плагин "noname". Я хотел бы назначать его при создании Item
, если поле maker
не задано (в форме). Но всякий раз, когда я пытаюсь создать элемент без установки поля maker
, я получаю psycopg2.errors.NotNullViolation: null value in column "maker_id" of relation "stock_management_item" violates not-null constraint
.
Конечно, я могу управлять этим в представлении/форме, но я хотел бы понять, почему значение default
не работает.