Я написал специальный валидатор, который поднимет 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