You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
DjangoBlog/accounts/forms.py

39 lines
1.9 KiB

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

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/*'}),
}