Django中的DecimalField验证

时间:2016-10-29 19:24:00

标签: python django django-forms

我试图验证Django中的DecimalField

尝试shell:

>> from django.forms import DecimalField
>> from django.core.validators import MaxValueValidator
>> f = DecimalField(max_digits=2, decimal_places=1, validators=[MaxValueValidator(10)])
>> f.validate(11) # after this I should get an error
>>

但它没有显示验证错误。它应该抛出一个错误,因为11大于10,对吗?

我做错了什么?

1 个答案:

答案 0 :(得分:2)

您在字段声明中遇到1个问题。 如果max_digits = 2且decimal_places = 1,则在没有验证器干预的情况下,最大值为9.9。

max_digits = 3和max = 10.0的验证器

使用 clean()功能:

>> from django.forms import DecimalField
>> from django.core.validators import MaxValueValidator
>> f = DecimalField(max_digits=3, decimal_places=1, validators=[MaxValueValidator(10)])
>> f.clean(11.2)

https://docs.djangoproject.com/en/1.10/ref/forms/validation/