Привет, Dev’s👏, Давайте посмотрим, Как проверить форму, отправленную пользователем?
Это можно сделать двумя способами:
- Один за другим.
- Все сразу.
Один за другим😢
clean_‹fieldname›()→ этот метод вызывается в подклассе формы, где ‹ fieldname› заменяется именем атрибута поля формы.
Этот метод выполняет только очистку, специфичную для этого конкретного атрибута, не связанную с типом поля, которым он является.
Этот метод не требует никаких параметров.
Вам нужно будет найти значение поля в self.cleaned_data и помнить, что на данный момент это будет объект Python, а не исходная строка, представленная в форме.
Пример:
from django import forms class StudentRegistrationForm(forms.Form): name = forms.CharField() email = forms.EmailField() password = forms.CharField(widgets=forms.PasswordInput) def clean_name(self): valname = self.cleaned_data.get('name') if valname != None and len(valname)<4: raise forms.ValidationError('Invalid Value') return valname def clean_email(self): .... def clean_password(self): ....
Все сразу😍
clean() → метод clean() в подклассе Field отвечает за запуск to_python(), validate() и run_validators() в правильном порядке и распространение их ошибок.
Если в любой момент какой-либо из методов вызывает ошибку проверки, проверка останавливается и возникает ошибка.
Этот метод возвращает чистые данные, которые затем вставляются в cleaned_data в словарь формы.
Синтаксис:📝
Form.clean()
from django import forms class StudentRegistrationForm(forms.Form): name = forms.CharField() email = forms.EmailField() def clean(self): cleaned_data = super().clean() valname = self.cleaned_data.get('name') valemail = self.cleaned_data.get('email') if len(valname)<4:raise ValidationError if condition(valemail):raise ValidationError return
В следующей статье мы рассмотрим электронные валидаторы форм😁,
Спасибо за подписку и аплодисменты😋
Ссылка на День 30