|
|
from django import forms
|
|
|
from django.contrib.auth.forms import UserCreationForm, UserChangeForm
|
|
|
from .models import CustomUser
|
|
|
|
|
|
class CustomUserCreationForm(UserCreationForm):
|
|
|
"""自定义用户创建表单,用于用户注册"""
|
|
|
|
|
|
class Meta:
|
|
|
# HJJ:指定此表单对应的数据模型为CustomUser
|
|
|
model = CustomUser
|
|
|
# HJJ:定义表单中要包含的字段,包括用户名、邮箱、个人简介等
|
|
|
fields = ('username', 'email', 'bio', 'avatar', 'location', 'website')
|
|
|
# HJJ:为表单字段配置自定义小部件,用于控制前端显示效果
|
|
|
widgets = {
|
|
|
# HJJ:为个人简介字段设置文本区域,指定4行高度和占位符文本
|
|
|
'bio': forms.Textarea(attrs={'rows': 4, 'placeholder': '介绍一下自己...'}),
|
|
|
# HJJ:为头像字段设置文件输入,限制只能选择图片文件
|
|
|
'avatar': forms.FileInput(attrs={'accept': 'image/*'}),
|
|
|
}
|
|
|
|
|
|
class CustomUserChangeForm(UserChangeForm):
|
|
|
"""自定义用户信息修改表单,用于用户编辑个人资料"""
|
|
|
|
|
|
# HJJ:将密码字段设置为None,从表单中移除密码相关字段
|
|
|
# HJJ:这样用户在编辑个人信息时不会看到密码输入框
|
|
|
password = None
|
|
|
|
|
|
class Meta:
|
|
|
# HJJ:指定此表单对应的数据模型为CustomUser
|
|
|
model = CustomUser
|
|
|
# HJJ:定义表单中要包含的字段,与创建表单相同但不包含密码字段
|
|
|
fields = ('username', 'email', 'bio', 'avatar', 'location', 'website')
|
|
|
# HJJ:为表单字段配置自定义小部件,用于控制前端显示效果
|
|
|
widgets = {
|
|
|
# HJJ:为个人简介字段设置文本区域,指定4行高度
|
|
|
'bio': forms.Textarea(attrs={'rows': 4}),
|
|
|
# HJJ:为头像字段设置文件输入,限制只能选择图片文件
|
|
|
'avatar': forms.FileInput(attrs={'accept': 'image/*'}),
|
|
|
} |