Django有各种数值字段可用于模型中,例如DecimalField和PositiveIntegerField。虽然前者可以限制为存储的小数位数和存储的字符总数,但是否有任何方法将其限制为仅存储特定范围内的数字,例如0.0-5.0
如果做不到这一点,有没有办法限制一个PositiveIntegerField只存储,例如最多50个数字
更新:现在Bug 6845已经关闭,这个StackOverflow问题可能没有意义。-sampablokuper
您可以使用Django的内置验证器-
从django.db.models导入IntegerField,Model
从django.core.validators导入MaxValueValidator、MinValueValidator
类别CoolModelBro(型号):
有限整数字段=整数字段(
默认值=1,
验证器=[
MaxValueValidator(100),
MinValueValidator(1)
]
)
编辑:当直接使用模型时,确保在保存模型之前调用模型完全清除方法,以触发验证程序。当使用ModelForm时,这不是必需的,因为表单将自动执行此操作