标签:
整个过程和用户注册很相似,先让用户输入原密码,然后在输入两次修改密码,然后存储到数据库中。
定义用户修改密码表单
class CodeForm(forms.Form): oldpassword = forms.CharField(label=‘原密码:‘,max_length=30) newpassword1 = forms.CharField(label=‘修改密码:‘,widget=forms.PasswordInput()) newpassword2 = forms.CharField(label=‘再次输入:‘,widget=forms.PasswordInput()) def pwd_validate(self,p1,p2): return p1 == p2
Views
@csrf_exemptdef code(request): errors = [] if request.method == ‘POST‘: form = CodeForm(request.POST) if form.is_valid(): username = request.COOKIES.get(‘username‘,‘‘) oldpassword = request.POST.get(‘oldpassword‘,‘‘) user = authenticate(username=username,password=oldpassword) if user is not None and user.is_active: data=form.cleaned_data newpassword1 = data[‘newpassword1‘] newpassword2 = data[‘newpassword2‘] if form.pwd_validate(newpassword1,newpassword2): newpassword = request.POST.get(‘newpassword1‘,‘‘) user.set_password(newpassword) user.save() return render_to_response(‘success.html‘,{‘username‘:username}) else: errors.append(‘温馨提示:两次密码不相同,请重新输入!‘) else: errors.append(‘温馨提示:密码错误,请重新输入!‘) else: form = CodeForm() return render_to_response(‘code.html‘,{‘form‘:form,‘errors‘:errors},RequestContext(request))
使用Django实现用户修改密码
原文地址:http://www.cnblogs.com/pylab/p/4293176.html