Ответ 1
Да, это возможно. Это спорно, оно должно ли - есть давнишняя сообщение об ошибке: http://code.djangoproject.com/ticket/7609
Может ли поле типа models.PositiveIntegerField содержать значение 0? Я делаю что-то вроде:
points = models.PositiveIntegerField(default=0)
Спасибо,
Я знаю, что должен попробовать, но у меня нет среды Django.
Да, это возможно. Это спорно, оно должно ли - есть давнишняя сообщение об ошибке: http://code.djangoproject.com/ticket/7609
Да.
ссылка на поле модели говорит так. Для полноты также цитируется здесь:
PositiveIntegerField
class PositiveIntegerField([**options])
Как IntegerField, но должен быть либо положительным, либо нулевым (0). Значение 0 принимается за соображения обратной совместимости.
Для тех, кто хочет исключить 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]
)