Привет, Dev’s👏, Давайте посмотрим, Как проверить форму, отправленную пользователем?

Это можно сделать двумя способами:

  1. Один за другим.
  2. Все сразу.

Один за другим😢

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

Ссылка на стартовую страницу