#python #django #project
#python #django #проект
Вопрос:
На странице 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
Во втором случае код проверяет, имеют ли ‘password1’ и ‘password2’ какое-либо значение. В первом случае такой проверки нет. Почему?
Ответ №1:
В clean_password2
вы проверяете password2
поле, поэтому вы уверены, что оно существует в этой форме, и вам не нужно проверять его существование в self.cleaned_data
. Однако это не означает, что они также не могли проверить наличие password1
.
clean
Метод проверяет всю форму и не дает никаких гарантий того, что присутствует.
Комментарии:
1. Большое спасибо вам обоим. Я ищу код, который позволяет пользователям подписываться, только если они были приглашены (немного похоже на Quora). Где я могу это найти? Спасибо.