Насколько я понял, вам нужна проверка модели Django.Вы можете попробовать этот подход (я думаю, это именно то, что вы хотите).
from django.core.exceptions import ValidationError
class Foo(models.Model):
name = models.CharField(max_length=255)
def clean(self):
raise ValidationError('Problem during validation')
f = Foo(name='test')
f.full_clean() # This is what you need. f.clean() will be enough, but f.full_clean() will make field level validations (run validators) and checking about uniqueness also.
f.save()
В общем Django никогда не делает проверки на уровне модели (не вызывает full_clean()
), во времясоздание модели.
f = Foo(**fields_dict)
f.save() # no validation performed.
назовите его сами, если хотите ,,,
f = Foo(**fields_dict)
f.full_clean() # validation performed
f.save()
full_clean()
метод выполняется автоматически, если вы используете класс ModelForm
.Это дополнительный хук Джанго .