我寫了一個自定義驗證程序,如果給定的字段值爲負值,將引發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