|
|
|
|
@ -14,8 +14,8 @@ from .models import BlogUser
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
class BlogUserCreationForm(forms.ModelForm):
|
|
|
|
|
#shw 自定义用户创建表单,用于在Django Admin后台添加新用户。
|
|
|
|
|
#shw 它继承自 ModelForm,并增加了密码输入和确认的逻辑。
|
|
|
|
|
#shw 自定义用户创建表单,用于在Django Admin后台添加新用户。
|
|
|
|
|
#shw 它继承自 ModelForm,并增加了密码输入和确认的逻辑。
|
|
|
|
|
|
|
|
|
|
#shw 定义第一个密码字段,使用PasswordInput控件隐藏输入内容
|
|
|
|
|
password1 = forms.CharField(label=_('password'), widget=forms.PasswordInput)
|
|
|
|
|
@ -23,12 +23,12 @@ class BlogUserCreationForm(forms.ModelForm):
|
|
|
|
|
password2 = forms.CharField(label=_('Enter password again'), widget=forms.PasswordInput)
|
|
|
|
|
|
|
|
|
|
class Meta:
|
|
|
|
|
#shw Meta类用于配置表单与模型的关联
|
|
|
|
|
#shw Meta类用于配置表单与模型的关联
|
|
|
|
|
model = BlogUser #shw 指定该表单对应的模型是 BlogUser
|
|
|
|
|
fields = ('email',) #shw 在创建用户时,除了密码外,只显示邮箱字段
|
|
|
|
|
|
|
|
|
|
def clean_password2(self):
|
|
|
|
|
#shw 自定义验证方法,用于检查两次输入的密码是否一致
|
|
|
|
|
#shw 自定义验证方法,用于检查两次输入的密码是否一致
|
|
|
|
|
#shw Check that the two password entries match
|
|
|
|
|
password1 = self.cleaned_data.get("password1") #shw 从已清洗的数据中获取第一个密码
|
|
|
|
|
password2 = self.cleaned_data.get("password2") #shw 从已清洗的数据中获取第二个密码
|
|
|
|
|
@ -38,7 +38,7 @@ class BlogUserCreationForm(forms.ModelForm):
|
|
|
|
|
return password2 #shw 返回第二个密码作为清洗后的数据
|
|
|
|
|
|
|
|
|
|
def save(self, commit=True):
|
|
|
|
|
#shw 重写save方法,以便在保存用户时处理密码哈希
|
|
|
|
|
#shw 重写save方法,以便在保存用户时处理密码哈希
|
|
|
|
|
#shw Save the provided password in hashed format
|
|
|
|
|
user = super().save(commit=False) #shw 调用父类的save方法,但先不提交到数据库(commit=False)
|
|
|
|
|
user.set_password(self.cleaned_data["password1"]) #shw 使用Django的set_password方法将明文密码加密后存储
|
|
|
|
|
@ -49,24 +49,24 @@ class BlogUserCreationForm(forms.ModelForm):
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
class BlogUserChangeForm(UserChangeForm):
|
|
|
|
|
#shw 自定义用户修改表单,用于在Django Admin后台编辑现有用户信息。
|
|
|
|
|
#shw 它继承自Django的UserChangeForm,以复用大部分功能。
|
|
|
|
|
#shw 自定义用户修改表单,用于在Django Admin后台编辑现有用户信息。
|
|
|
|
|
#shw 它继承自Django的UserChangeForm,以复用大部分功能。
|
|
|
|
|
|
|
|
|
|
class Meta:
|
|
|
|
|
#shw Meta类用于配置表单与模型的关联
|
|
|
|
|
#shw Meta类用于配置表单与模型的关联
|
|
|
|
|
model = BlogUser #shw 指定该表单对应的模型是 BlogUser
|
|
|
|
|
fields = '__all__' #shw 在修改用户时,显示模型中的所有字段
|
|
|
|
|
#shw 指定 'username' 字段使用的字段类为 UsernameField
|
|
|
|
|
field_classes = {'username': UsernameField}
|
|
|
|
|
|
|
|
|
|
def __init__(self, *args, **kwargs):
|
|
|
|
|
#shw 重写初始化方法,可以在这里添加自定义的初始化逻辑
|
|
|
|
|
#shw 重写初始化方法,可以在这里添加自定义的初始化逻辑
|
|
|
|
|
super().__init__(*args, **kwargs) #shw 调用父类的初始化方法
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
class BlogUserAdmin(UserAdmin):
|
|
|
|
|
#shw 自定义用户管理类,用于在Django Admin后台定制 BlogUser 模型的显示和操作方式。
|
|
|
|
|
#shw 它继承自Django的UserAdmin,以复用用户管理的标准功能。
|
|
|
|
|
#shw 自定义用户管理类,用于在Django Admin后台定制 BlogUser 模型的显示和操作方式。
|
|
|
|
|
#shw 它继承自Django的UserAdmin,以复用用户管理的标准功能。
|
|
|
|
|
|
|
|
|
|
form = BlogUserChangeForm #shw 指定修改用户时使用的表单
|
|
|
|
|
add_form = BlogUserCreationForm #shw 指定添加用户时使用的表单
|
|
|
|
|
|