2
정말 간단한 양식이지만 어디에서 잘못 됐는지를 모릅니다. 내가 장고 사이트의 디버그 모드를 확인할 때, 나는 new
필드의 clean_data은 다음의 그림과 같이 누락 된 것을 발견 : 당신이 같은 신규 및 기존 암호를 입력하면form.cleaned_data는 양식 처리 중입니다
class PasswordEditForm(forms.Form):
old = forms.CharField(widget=forms.PasswordInput, min_length=6,
max_length=30, label='舊密碼', label_suffix=' ')
new = forms.CharField(widget=forms.PasswordInput, min_length=6,
max_length=30, label='新密碼', label_suffix=' ')
new_confirm = forms.CharField(widget=forms.PasswordInput, min_length=6,
max_length=30, label='再輸入一次', label_suffix=' ')
def clean_new(self):
cd = self.cleaned_data
if cd['old'] == cd['new']:
raise forms.ValidationError('新密碼與舊密碼相同')
return cd['new']
def clean_new_confirm(self):
cd = self.cleaned_data
if cd['new'] != cd['new_confirm']:
raise forms.ValidationError('兩次輸入密碼不相符')
return cd['new_confirm']
: cleaned_data는
new
가치와 네 경우를 포함하는 경우new_confirm
에new
가 동일한 경우 확인 먼저 확인 – neverwalkaloner