python - 添加管理员-编辑密码 - 带md5加密码


''' 编辑密码类'''
class AdminAddModelForm(BootstrapModelForm):
    # 定义重复密码字段
    confirm_pwd = forms.CharField(
        label='重复密码',
        # 加入插件 让重复密码变成密文  (render_value=True) 让错误的密码不会置空
        widget=forms.PasswordInput(render_value=True)
    )
    class Meta:
        model = models.Admin
        fields = '__all__'
        # 加入插件 让密码变成密文 render_value=True 让错误的密码不会置空
        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_add(request):
    title = '新建管理员'
    if request.method == 'GET':
        form = AdminAddModelForm()
        return render(request, 'change.html', {"title": title, 'form': form})

    form = AdminAddModelForm(data=request.POST)
    if form.is_valid():
        form.save()
        return redirect('/admin/list')
    return render(request, 'change.html', {"title": title, 'form': form})

相关