如何限制Django模型中数值字段的最大值?

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时,这不是必需的,因为表单将自动执行此操作

发表评论