【发布时间】:2016-08-05 15:25:10
【问题描述】:
我写了一个自定义验证器,如果给定的字段值为负数,它将引发 ValidationError。
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 那么如何验证提供给模型字段的输入?
标签: django python-2.7 django-models django-validation