类型models.PositiveIntegerField的字段是否包含0值?我正在做类似的事情:
points = models.PositiveIntegerField(default=0)
谢谢,
我知道我应该自己尝试,但我这里没有Django环境。
答案 0 :(得分:28)
是的,它可以。它是否应该是有争议的 - 有一个长期的错误报告:http://code.djangoproject.com/ticket/7609
答案 1 :(得分:5)
是
model field reference这样说。为了完整起见,这里也引用了:
PositiveIntegerField
class PositiveIntegerField([**options])
与IntegerField类似,但必须为正数或零(0)。由于向后兼容性原因,接受值0。
答案 2 :(得分:2)
对于那些想要排除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]
)
答案 3 :(得分:1)
通过正整数的定义,它不应该接受零值,但是django实际上认为它是非负数的意义,它是零包含的。所以,是的它可以接受零值