我写了一个自定义验证程序,如果给定的字段值为负值,将引发ValidationError。Django自定义验证程序不能正常工作
def validate_positive(value):
if value < 0:
raise ValidationError(
_('%(value) is negative number'),
params = {'value': value}
)
我通过现场的验证参数
class Book(models.Model):
user = models.ForeignKey(User,on_delete=models.CASCADE)
title = models.CharField(max_length=50)
price = models.IntegerField(default=0,validators=[validate_positive])
quantity = models.IntegerField(default=0,validators=[validate_positive])
将此添加到我的模型字段,但创建对象,如果价格低于零它不会引发任何错误。
我不知道我在哪里做错了,我是新的django。
我正在使用Django 1.9。
请帮帮我。
验证器用于表单,不用于创建对象。如果你在表单之外创建一个对象,那么你需要提供另一种验证输入的方法。 – Sayse
@Sayse然后如何验证给模型字段的输入? – rock