我想在Django中为FloatField设置最小值,以便表单字段不接受负值。对于Integer,我将数据类型更改为PositiveIntegerField,但在float字段的情况下最小值不起作用。
from django.core.validators import MaxValueValidator, MinValueValidator
max_discount = models.FloatField( verbose_name=u'Maximum Discount', validators = [MinValueValidator(0.0)])
最佳答案
您的代码:
from django.core.validators import MaxValueValidator, MinValueValidator
max_discount = models.FloatField( verbose_name=u'Maximum Discount', validators = [MinValueValidator(0.0)])
看起来不错。
您应该注意的是
保存模型时,验证程序不会自动运行,但是如果
您正在使用ModelForm,它将在任何字段上运行验证器
包含在您的表格中。
有关更多信息,请参见docs。
您也可以在表单中添加某种html属性验证,例如:
<input type="number" min="0.0">
进行服务器端验证。
编辑
如果您的表单字段位于管理界面中,则可以为此字段自定义窗口小部件(基本上是HTML)。您可以在管理界面中看到here如何将自定义窗口小部件添加到字段中。