Атрибут cleaned_data
Атрибут cleaned_data класса Form содержит словарь с данными формы, прошедшими полную валидацию. Доступ к этому атрибуту возможен только после успешного выполнения метода is_valid, который запускает процесс очистки и проверки данных. В словаре ключами выступают имена полей формы, а значениями - данные, приведённые к нужному типу и прошедшие все валидаторы. Если форма не прошла валидацию, атрибут cleaned_data будет пустым словарем, либо вовсе недоступен для безопасного использования.
Синтаксис
<~show~> <+python+> form.cleaned_data.get('field_name') <-python-> <~show~>Пример
Рассмотрим базовую форму с полями имени и возраста. После проверки is_valid, данные извлекаются из cleaned_data:
Пример
Использование метода get для безопасного доступа к данным позволяет избежать ошибки KeyError, если поле отсутствует или не прошло валидацию:
Пример
Атрибут cleaned_data содержит данные с преобразованными типами. Например, поле с типом IntegerField будет хранить значение как целое число, а поле DateTimeField как объект datetime. Рассмотрим пример с формой регистрации:
Результат выполнения кода:
<~show~> <+python+> "Пример
Обработка ошибок при обращении к cleaned_data для формы, которая не прошла валидацию. В этом случае атрибут будет содержать пустой словарь:
Результат выполнения кода:
<~show~> <+python+> "{}" <-python-> <~show~>Смотрите также
-
метод
is_valid,
который запускает валидацию формы -
атрибут
errors,
который содержит ошибки валидации формы -
метод
changed_data,
который возвращает список изменённых полей -
метод
clean,
который используется для кросс-полевой валидации