Подтвердить что ты не робот

0 в Django PositiveIntegerField?

Может ли поле типа models.PositiveIntegerField содержать значение 0? Я делаю что-то вроде:

points = models.PositiveIntegerField(default=0)

Спасибо,

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

4b9b3361

Ответ 2

Да.

ссылка на поле модели говорит так. Для полноты также цитируется здесь:

PositiveIntegerField

class PositiveIntegerField([**options])

Как IntegerField, но должен быть либо положительным, либо нулевым (0). Значение 0 принимается за соображения обратной совместимости.

Ответ 3

Для тех, кто хочет исключить 0, легко написать validator.

def validate_nonzero(value):
    if value == 0:
        raise ValidationError(
            _('Quantity %(value)s is not allowed'),
            params={'value': value},
        )

а затем использовать его как таковой

fill_qty = models.PositiveIntegerField(
  default=0,
  validators=[MaxValueValidator(1000000), validate_nonzero]
)