사용자가 정보를 업데이트하고 암호를 변경하기위한 페이지를 작성하려고합니다.사용자가 잘못된 암호를 입력했다는 오류 메시지 표시
나는 지금 일하고있다. 내가 제공 한 코드는 작동하지만 사용자에게 잘못된 비밀번호를 입력하는 방법을 알지 못합니다. 사용자가 암호를 입력하면 양식이 유효하지만 잘못된 암호를 입력하면 양식이 유효하지 않다고 말하고 싶습니다. 그러나 forms.errors라고하는 else stmt에 forms.ValidationError ("some error msg")를 넣으면 서식 파일로 돌아 가지 않지만 컴파일러 msg 페이지에 오류 msg가 표시됩니다.
이것은 내 django.contrib.auth.models 가져 오기 사용자
def edit_page(request):
u = request.user
if request.method == 'POST':
form = EditUserForm(request.POST)
if form.is_valid():
if u.check_password(form.cleaned_data['oldPassword']):
u.set_password(form.cleaned_data['password1'])
u.save()
return HttpResponseRedirect('/')
else:
form.errors //Where I put forms.ValidationError()
else:
form = EditUserForm()
variables = RequestContext(request, {
'form': form, 'user': request.user
})
return render_to_response(
'registration/Edit_User.html',
variables
)
이것은에서 내 forms.pyclass
EditUserForm(forms.Form):
oldPassword = forms.CharField(
label=u'Current Password',
widget = forms.PasswordInput()
)
password1 = forms.CharField(
label=u'New Password',
widget=forms.PasswordInput()
)
password2 = forms.CharField(
label=u'New Password (Again)',
widget=forms.PasswordInput()
)
def clean_password2(self):
if 'password1' in self.cleaned_data:
password1 = self.cleaned_data['password1']
password2 = self.cleaned_data['password2']
if password1 == password2:
return password2
raise forms.ValidationError('Passwords do not match.')
HTML 양식에 Method = "POST"가 있습니까? – Kugel
예 그래야 할 사항이 있습니다. – user671800