Manevant
@Manevant
Учу Python

Зачем и когда нужно использовать clean и clean_fieldname для проверки филда формы?

Собственно вопрос. Не совсем понимаю зачем и когда нужно использовать clean и clean_fieldname для проверки филда формы. В чем разница? Когда что лучше использовать?

В целом валидация форм в джанго немного взрывает мозг.
  • Вопрос задан
  • 2861 просмотр
Решения вопроса 1
alternativshik
@alternativshik
clean_fieldname используется для проверки корректности данных КОНКРЕТНОГО поля формы и отвечает за вызов методов to_python, validate и run_validators в правильном порядке и передачу их ошибок. Как только любой из этих методов вызовет исключение ValidationError, процесс проверки прекращается и ошибка передаётся выше. Этот метод возвращает проверенные данные, которые затем помещаются в словарь cleaned_data формы.

Метод clean() потомка формы может выполнять любую проверку, которая нуждается в одновременном доступе к данным нескольких полей. Именно здесь вы можете проверять, что если поле A заполнено, то поле B должно содержать правильный адрес электронной почты и так далее. Данные, которые возвращает этот метод, помещаются в свойство cleaned_data формы.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы