python - 管理密码重置- 带md5加密码


'''重置密码类'''
class AdminChongModelForm(BootstrapModelForm):

confirm_pwd = forms.CharField(
label='重复密码',
# 加入插件 让重复密码变成密文 (render_value=True) 让错误的密码不会置空
widget=forms.PasswordInput(render_value=True)
)


class Meta:
model = models.Admin
fields = ['pwd', 'confirm_pwd']
widgets = {
'pwd': forms.PasswordInput(render_value=True)
}

def clean_pwd(self):
pwd = self.cleaned_data.get('pwd')
return md5(pwd)

# 验证密码 是否一致

def clean_confirm_pwd(self):
# print(self.cleaned_data)
pwd = self.cleaned_data.get('pwd')
rpwd = self.cleaned_data.get('confirm_pwd')
rpwd = md5(rpwd)
if rpwd != pwd:
# 需要引入 from django.core.exceptions import ValidationError 才可以使用 ValidationError
raise ValidationError('密码不一致')
return rpwd




'''
重置密码''' def admin_chongzhi(request, nid): row_obj = models.Admin.objects.filter(id=nid).first() if not row_obj: return redirect('/admin/list/') title = '重置- {}的密码 '.format(row_obj.username) # instance=row_obj 显示秘钥 if request.method == 'GET': form= AdminChongModelForm() return render(request, 'change.html', {"title": title, 'form': form}) form = AdminChongModelForm(request.POST,instance=row_obj) if form.is_valid(): form.save() return redirect('/admin/list/') return render(request, 'change.html', {"title": title, 'form': form})

相关