Уведомления

Группа в Telegram: @pythonsu

#1 Март 25, 2010 11:18:45

pyOut
От:
Зарегистрирован: 2006-07-16
Сообщения: 125
Репутация: +  0  -
Профиль   Отправить e-mail  

Назначение cleaned_data

Приветствую,

Подскажите для каких целей нужно использовать cleaned_data если перед ним стоит условие form.is_valid()?
И зачем нужно испольовать clean_(поле) если обработчики ошибкок можно засунуть в validator?



Офлайн

#2 Март 25, 2010 12:47:48

regall
От: Киев
Зарегистрирован: 2008-07-17
Сообщения: 1583
Репутация: +  3  -
Профиль   Отправить e-mail  

Назначение cleaned_data

Назначение clean_* немножко другое чем валидоатор. Валидатор проверяет на ошибки, а clean_* приводит сырые данные, полученные из формы в тот вид, который вам нужен для сохранения модели.



Офлайн

#3 Март 25, 2010 13:58:43

pyOut
От:
Зарегистрирован: 2006-07-16
Сообщения: 125
Репутация: +  0  -
Профиль   Отправить e-mail  

Назначение cleaned_data

А в чем тогда отличия от метода to_python у models.Field ?



Офлайн

#4 Март 25, 2010 14:58:14

regall
От: Киев
Зарегистрирован: 2008-07-17
Сообщения: 1583
Репутация: +  3  -
Профиль   Отправить e-mail  

Назначение cleaned_data

clean по умолчанию вызывает метод to_python поля модели. Поэтому clean нужно переопределять только тогда, когда необходимо произвести какие-то дополнительные действия, или изменить поведение to_python. Это исключительно в нетривиальных формах.

Пример, когда не нужен clean:
Поле количество задается как <input type = “text” />. В этом случае clean определять не надо.

Пример, когда использовать clean:
В форме пользователю предлагается ввести некую строку, которая в последствии станет частью URL'a. Тогда clean будет выполнять, например, транслитерацию и вырезание лишних символов.



Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version