Каково значение по умолчанию для поля DecimalField в Django?

Я добавляю новое поле DecimalField в свою модель, какое значение оно будет иметь по умолчанию в базе данных (если я не укажу значение по умолчанию явно в поле, например, default=1.23)?

amount = models.DecimalField(max_digits=15, decimal_places=3)

Я ожидаю, что это будет либо NULL, либо 0.0 (или None или Decimal(0.000) в python), но что?

Не нашел упоминания об этом в документации: https://docs.djangoproject.com/en/2.2/ref/models/fields/#decimalfield

Я использую Django 2.2, но ожидаю, что это соответствует всем версиям.

Основывается на вашем определении. Значение по умолчанию будет 0.000

Если у вас был ключевой аргумент null=True, то вы можете ожидать NULL, где значение не было введено.

Django не устанавливает никаких значений по умолчанию. Вы должны сами указать значение по умолчанию.

amount = models.DecimalField(max_digits=15, decimal_places=3, default=0.0)

Очевидно, что значение по умолчанию должно быть NULL, но это произойдет только тогда, когда вы активируете его, т.е. установите null = True в качестве одного из атрибутов поля модели. Однако я не проверял это в последнее время. Однако я рекомендую установить значение по умолчанию самостоятельно. Например, default = 0.000.

Альтернативно, вам нужно передать другой атрибут, подобный blank = True или required = False, если вы хотите, чтобы поле модели было опциональным полем. В противном случае, оно всегда будет предлагать вам заполнить его каким-либо десятичным значением.

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