Модели Django 5.1 с полями, использующими db_default, бросаются на full_clean

Пытаемся реализовать в Django 5 новый атрибут db_default для полей

В качестве примера можно привести следующее поле:

editable = models.BooleanField(db_default=True)

Ожидается, что если editable не указан при создании нового экземпляра, то ORM не выдаст ошибку, а сохранит экземпляр, и что значение editable будет установлено в True на уровне базы данных.

Для создания нового объекта выполните следующее:

    product_obj = models.Product(
        id=id,
        name=name,
        is_active=is_active,
        inventory_type=inventory_type,
        leadtime=leadtime,
    )
    product_obj.full_clean()
    product_obj.save()

ожидается успех.

Вместо full_clean() возникает ValidationError:

django.core.exceptions.ValidationError: {'editable': ['“<django.db.models.expressions.DatabaseDefault object at 0x151db1c70>” value must be either True or False.']}

и подобное поведение происходит во всей моей кодовой базе для любого поля, для которого установлено значение db_default (CharField с выбором, IntegerField и т.д.)

Очевидно, я не понимаю, как следует использовать db_default.

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