Практические Джанго Проекты - Страница 168 - PullRequest
0 голосов
/ 30 апреля 2011

На странице 168 есть два фрагмента кода:

def clean_password2(self):
   if self.cleaned_data['password1'] != self.cleaned_data['password2']:
      raise forms.ValidationError("You must type the same password each time")
   return self.cleaned_data['password2']

def clean(self):
   if 'password1' in self.cleaned_data and 'password2' in self.cleaned_data:
      if self.cleaned_data['password1'] != self.cleaned_data['password2']:
         raise forms.ValidationError("You must type the same password each time")
   return self.cleaned_data

Во втором случае код проверяет, имеют ли значения «пароль1» и «пароль2» какое-либо значение.В первом случае такой проверки нет.Почему?

Ответы [ 2 ]

1 голос
/ 30 апреля 2011

В clean_password2 вы проверяете поле password2, поэтому вы уверены, что оно существует в этой форме, и вам не нужно проверять его наличие в self.cleaned_data. Это не значит, что они также не могли проверить eixstence password1.

Метод clean проверяет всю форму и не имеет гарантий того, что присутствует.

1 голос
/ 30 апреля 2011

метод clean_password2 выполняет очистку поля, в данном случае поле password2.(docs)

метод clean вызывается после проверки отдельных полей.Это хорошее место для проведения проверок по нескольким полям в соответствии с документами.

Подробнее here.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...