BaseForm.is_valid() BaseForm._get_errors() BaseForm.full_clean() BaseForm._post_clean() -> { Model.clean_fields() Model.clean() BaseForm.validate_unique() -> Model.validate_unique() }
Т.е. при вызове метода формы is_valid() и при наличии данных сначала вызывается метод full_clean(), который проходится по всем полям формы и валидирует каждое. Сначала значения приводятся к питоническому виду методом to_python() или выбрасывается исключение ValidationError. Затем данные валидируются "персональными" валидаторами полей, вызывается clean_<field>(), если таковой наличиствует. Следом, full_clean вызывает метод clean(). И если форма - экземпляр класса ModelForm, то _post_clean() делает следующее: присваивает значения экземпляру модели, независимо от результата is_valid; вызывает метод clean() модели.
Комментариев нет:
Отправить комментарий