2
当用户成功登录并进入主页时,有一个链接“更改密码”用于更改密码。它显示一个表单来更改密码,有三个输入框用于旧密码,新密码确认新密码Django窗体更改密码
这是我的代码。
forms.py
class reset_form(forms.Form):
oldpassword = forms.CharField(max_length = 20, widget=forms.TextInput(attrs={'type':'password', 'placeholder':'your old Password', 'class' : 'span'}))
newpassword1 = forms.CharField(max_length = 20, widget=forms.TextInput(attrs={'type':'password', 'placeholder':'New Password', 'class' : 'span'}))
newpassword2 = forms.CharField(max_length = 20, widget=forms.TextInput(attrs={'type':'password', 'placeholder':'Confirm New Password', 'class' : 'span'}))
def clean(self):
if 'newpassword1' in self.cleaned_data and 'newpassword2' in self.cleaned_data:
if self.cleaned_data['newpassword1'] != self.cleaned_data['newpassword2']:
raise forms.ValidationError(_("The two password fields did not match."))
return self.cleaned_data
views.py
def change_password(request):
if request.method == 'POST':
form = reset_form(request.POST)
if form.is_valid():
newpassword=form.cleaned_data['newpassword1'],
username=request.user.username
password=request.user.password
user = authenticate(username=username, password=password)
if user is not None:
user.set_password(newpassword)
user.save()
return HttpResponseRedirect('/reset/success/')
else:
return render(request, 'reset_password.html',{'error':'You have entered wrong old password','form': form})
else:
return render(request, 'reset_password.html',{'error':'You have entered old password','form': form})
else:
form = reset_form()
content = RequestContext(request, {'form': form})
return render(request, 'reset_password.html', content,)
提交与正确的旧密码我得到这个消息表格后你输入错误的旧密码我不知道为什么我将这个错误消息通知给了我e请使用此代码帮助
感谢丹尼尔回答它真的帮助了我。但是现在我又发现了另一个问题,我的密码被更改了,但是还有一些其他文本。现在我的密码不是旧密码,也不是我提供的新密码。我该做什么 ? –
你怎么确定?不要忘记,正如我在回答中所提到的,密码存储在数据库中。 –