只允许正十进制数

新手上路,请多包涵

在我的 Django 模型中,我创建了一个像这样的小数字段:

 price = models.DecimalField(_(u'Price'), decimal_places=2, max_digits=12)

显然,价格为负或零是没有意义的。有没有办法将十进制数限制为正数?

或者我是否必须使用表单验证来捕获它?

原文由 Houman 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 360
2 个回答

使用 MinValueValidator

 price = models.DecimalField(_(u'Price'), decimal_places=2, max_digits=12, validators=[MinValueValidator(Decimal('0.01'))])

原文由 Alasdair 发布,翻译遵循 CC BY-SA 3.0 许可协议

你可以这样做:

 # .....
class priceForm(ModelForm):
    price = forms.DecimalField(required=False, max_digits=6, min_value=0)

这也负责“价格”的验证器值。

原文由 Nick Cuevas 发布,翻译遵循 CC BY-SA 4.0 许可协议

推荐问题