Найти - Пользователи
Полная версия: как (кто) вызывает clean_message(self) в классе ContactForm код Django
Начало » Django » как (кто) вызывает clean_message(self) в классе ContactForm код Django
1
qman
глава 7.5 http://cargo.caml.ru/djangobook/ch07s05.html
class ContactForm(forms.Form):
topic = forms.ChoiceField(choices=TOPIC_CHOICES)
message = forms.CharField(widget=forms.Textarea())
sender = forms.EmailField(required=False)

def clean_message(self):
message = self.cleaned_data.get('message', '')
num_words = len(message.split())
if num_words < 4:
raise forms.ValidationError("Not enough words!")
return message
в описании указано , что
“Этот новый метод будет вызываться после стандартной проверки (в этом случае, после проверки для типа CharField).”
поясните пожалуйста, в каком месте программного кода вызывается clean_message? Ведь нигде в коде нету ссылки на ее вызов?

P.S. Или позвольте пофантазировать в forms.Form реализована проверка наличия методов типа clean_message и при их существовании в классе (в рассматриваемом случае ContactForm) будет произведен вызов данного метода?
Александр Кошелев
В недрах `Form.is_valid` есть функциональность поиска user-defined методов валидации.
qman
Daevaorn
В недрах `Form.is_valid` есть функциональность поиска user-defined методов валидации.
Уважаемый Daevaorn, я такой новичок, что позвольте мне задать возможно глупые или неправильные вопросы.
По какому правилу формируется название имя “user-defined метода”?
Александр Кошелев
Как-то так:
'clean_%s' % field_name
qman
спасибо, как ни крути настоящая магия.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB