只允许正十进制数

新手上路,请多包涵

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

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

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

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

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

阅读 356
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 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题