Django 1.6
Я уже просмотрел документы, обсуждения StackOverflow и git.Тем не менее, у меня есть несколько сомнений.
1- Если я определяю валидатор в поле модели, имеет ли значение то, что я использую в форме, например forms.form
или forms.ModelForm
?
2- Что если явалидация в методе очистки модели, тогда как мне оттуда исправить ошибку валидации (в основном, чтобы показать шаблон)?Обычно я получаю сообщение об ошибке на сервере 500.
3 - Влияет ли ошибка с помощью средства проверки поля модели на сериализатор DRF или будет отображаться сообщение об ошибке?
4 - Если обязательно использовать forms.ModelForm
, то какЯ могу добиться аналогичной функциональности при использовании forms.form
?
Сейчас я использую forms.form
для формы и для поля модели. Я сделал следующее.
def validate_name(value, message=None, code=None,):
"""
Validation ensures a value consists of only letters, space and dot.
"""
reg = re.compile("^[\\p{L} .]+$")
if not reg.match(value):
raise ValidationError(message or _("Invalid - Allowed characters: a-z, A-Z, space, dot."), code=code or 'invalid_name')
Поле модели
first_name = models.CharField(_('first name'), max_length=200, blank=True, validators=[validate_name])
Прямо сейчас, чтобы выполнить validate_name, мне нужно позвонить full_clean()
и в итоге получить 500 ошибок сервера.
Любой лучший способ или предложение для достижения глобальной проверки дляМодель ценится.