Поле 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 не работает.

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