Уведомления

Группа в Telegram: @pythonsu

#1 Дек. 7, 2010 12:54:43

dissdoc
От:
Зарегистрирован: 2009-12-12
Сообщения: 273
Репутация: +  0  -
Профиль   Отправить e-mail  

Помогите снова с cleaned_data

Всем привет. Как быть, если хочу проверку делать для каждого поля. А именно, хочу сделать вот так проверку пароля

def clean_passwd(self):
p1 = self.cleaned_data['passwd']
p2 = self.cleaned_data.get('passwd2')
Но p2 всегда null. Как мне из проверки одного поля взять значение из другого поля?
Я это где-то видел. Но никак не могу найти. Доки сейчас шерстю. Но там везде встречается один параметр, а проверка паролей идет в функции clean :(



Офлайн

#2 Дек. 7, 2010 14:39:36

ziro
От:
Зарегистрирован: 2009-08-13
Сообщения: 225
Репутация: +  8  -
Профиль   Отправить e-mail  

Помогите снова с cleaned_data

При обработки формы джанга обрабатывает поля последовательно. То есть в конце стандартной обработки поля вызывает clean_XXX и только после этого обработанное значение помещается в cleaned_data.

В Вашем случае поле passwd2 скорее всего еще не обрабатывалось, соответственно оно будет пустым.

Решение - либо поступать как в букварях - в методе clean, когда обработаны все поля, либо поставить поле passwd2 до passwd в определении формы, чтобы при начале обработки clean_passwd второе поле было уже обработано или перенести функционал в clean_passwd2



Офлайн

#3 Дек. 7, 2010 14:56:39

dissdoc
От:
Зарегистрирован: 2009-12-12
Сообщения: 273
Репутация: +  0  -
Профиль   Отправить e-mail  

Помогите снова с cleaned_data

Хм. очень интересно. Не знал о такой ситуации. Всегда думал, что вначале все данные берутся с формы (визуальной) и передаются в форму forms.py…
Спасибо.



Офлайн

#4 Дек. 7, 2010 23:51:41

tier
От:
Зарегистрирован: 2007-11-25
Сообщения: 30
Репутация: +  0  -
Профиль   Отправить e-mail  

Помогите снова с cleaned_data

ziro
При обработки формы джанга обрабатывает поля последовательно. То есть в конце стандартной обработки поля вызывает clean_XXX и только после этого обработанное значение помещается в cleaned_data.
Не совсем так. Сначала значение из поля попадает в cleaned_data, потом уже вызывается clean_имяэтогополя. потом переходим к следующему полю.



Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version