Форум сайта python.su
Приветствую,
Подскажите для каких целей нужно использовать cleaned_data если перед ним стоит условие form.is_valid()?
И зачем нужно испольовать clean_(поле) если обработчики ошибкок можно засунуть в validator?
Офлайн
Назначение clean_* немножко другое чем валидоатор. Валидатор проверяет на ошибки, а clean_* приводит сырые данные, полученные из формы в тот вид, который вам нужен для сохранения модели.
Офлайн
А в чем тогда отличия от метода to_python у models.Field ?
Офлайн
clean по умолчанию вызывает метод to_python поля модели. Поэтому clean нужно переопределять только тогда, когда необходимо произвести какие-то дополнительные действия, или изменить поведение to_python. Это исключительно в нетривиальных формах.
Пример, когда не нужен clean:
Поле количество задается как <input type = “text” />. В этом случае clean определять не надо.
Пример, когда использовать clean:
В форме пользователю предлагается ввести некую строку, которая в последствии станет частью URL'a. Тогда clean будет выполнять, например, транслитерацию и вырезание лишних символов.
Офлайн