P49添加确认密码
这个地方遇到一个问题,写的逻辑和代码一样,但是ValidationError会一直报错,需要花时间排查一下,暂时注释掉跳过,
加密文件代码:
import hashlib
def md5(data_string):
# 自己加盐
# salt = "xxx"
# obj = hashlib.md5(salt.encode('utf-8'))
# 使用Django自动生成的密匙作为盐
from django.conf import settings
obj = hashlib.md5(settings.SECRET_KEY.encode('utf-8'))
obj.update(data_string.encode('utf-8'))
return obj.hexdigest()
后台验证代码:钩子函数
class AdminModelForm(BootStrapModelForm):
confirm_password = forms.CharField(
label="确认密码",
# widget=forms.PasswordInput,
# 设置两次密码不一致不清空密码输入框,加参数
widget=forms.PasswordInput(render_value=True),
)
class Meta:
model = models.Admin
fields = ["username", "password", "confirm_password"]
widgets = {
'password': forms.PasswordInput(render_value=True),
}
def clean_password(self):
pwd = self.cleaned_data.get("password")
from app03_phone_number_management.utils.encrypt import md5
return md5(pwd)
def clean_confirm_password(self):
print(self.cleaned_data.get("password"))
print(self.cleaned_data.get("confirm_password"))
pwd = self.cleaned_data.get("password")
from app03_phone_number_management.utils.encrypt import md5
confirm = self.cleaned_data.get("confirmed_data")
confirm = md5(confirm)
if confirm != pwd:
from django.core.exceptions import ValidationError
raise ValidationError("密码不一致")
return confirm