我试图验证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,对吗?
我做错了什么?
答案 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/