'''重置密码类'''
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})