【发布时间】:2016-01-18 08:47:08
【问题描述】:
最近我发现可以直接在models.py文件中定义Django表单验证。这可以通过以下方式完成:
fev1_liter = models.DecimalField(validators=[MaxValueValidator(8.2),
MinValueValidator(0.3)],
max_digits=3, decimal_places=2)
这是 forms.py 中验证的绝佳替代方案,但我确实有一个非常烦人的问题: 如何控制验证的执行顺序? 在此示例中,Django 将首先验证输入数字是否为 x.xx 格式,然后是最小值和最大值。这会导致一些非常混乱的错误消息。 提前致谢!
【问题讨论】:
-
你能发布那些错误信息吗?
-
如果您输入 25,则错误消息是“允许分隔符前只有一位数字”,而不是更用户友好的“值必须介于 0.3 -8.2 之间”。
标签: django django-models django-forms django-validation