12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667 |
- from django.contrib import admin
- from django.contrib.auth.admin import UserAdmin as BaseUserAdmin # 重命名以避免与可能的自定义UserAdmin冲突
- from .models import CustomUser # 导入你的CustomUser模型
- # 如果你想为Admin中的用户创建和修改表单提供更精细的控制,可以创建自定义表单
- # from django.contrib.auth.forms import UserCreationForm, UserChangeForm
- # class CustomUserCreationForm(UserCreationForm):
- # class Meta(UserCreationForm.Meta):
- # model = CustomUser
- # fields = ('email', 'phone_number', 'nickname') # 添加你想在创建时显示的字段
- # class CustomUserChangeForm(UserChangeForm):
- # class Meta(UserChangeForm.Meta):
- # model = CustomUser
- # fields = '__all__' # 或者列出所有你想在编辑时显示的字段
- class CustomUserAdmin(BaseUserAdmin):
- # 使用你 CustomUser 模型的字段来配置 Admin 界面
- # 定义在列表页显示的字段 (list_display)
- # 确保这里的字段名与你的 CustomUser 模型中的字段名一致
- list_display = ('email', 'phone_number', 'nickname', 'is_staff', 'is_active', 'date_joined')
- # 定义右侧的过滤器 (list_filter)
- list_filter = ('is_staff', 'is_active', 'date_joined')
- # 定义在编辑页的字段集 (fieldsets)
- # 这是编辑现有用户时显示的表单布局
- # 注意:BaseUserAdmin 的 fieldsets 是为包含 username 的 User 模型设计的
- # 我们需要根据我们的 CustomUser 模型调整
- fieldsets = (
- (None, {'fields': ('email', 'password')}), # Django Admin 会处理密码的显示和哈希
- ('个人信息', {'fields': ('phone_number', 'nickname', 'avatar', 'bio', 'school')}),
- ('权限', {'fields': ('is_active', 'is_staff', 'is_superuser', 'groups', 'user_permissions')}),
- ('重要日期', {'fields': ('last_login', 'date_joined')}),
- )
- # 定义在添加用户页的字段集 (add_fieldsets)
- # 这是点击 "Add user" 时显示的表单布局
- add_fieldsets = (
- (None, {
- 'classes': ('wide',),
- # USERNAME_FIELD 是 'email'
- # REQUIRED_FIELDS 是 ['phone_number', 'nickname']
- # UserCreationForm 通常处理 password 和 password2 (密码确认)
- 'fields': ('email', 'phone_number', 'nickname', 'password', 'password2'),
- }),
- # 你也可以在这里添加其他可选字段的分组,例如:
- # ('可选个人信息', {'fields': ('avatar', 'bio', 'school')}),
- # ('可选权限', {'fields': ('is_active', 'is_staff', 'is_superuser')}),
- )
- # 定义可搜索的字段 (search_fields)
- search_fields = ('email', 'phone_number', 'nickname')
- # 定义默认排序 (ordering)
- ordering = ('email',)
- # 对于多对多字段 (如 groups, user_permissions),使用 filter_horizontal 可以在Admin中提供更好的选择界面
- filter_horizontal = ('groups', 'user_permissions',)
- # 如果你创建了自定义的表单 (CustomUserCreationForm, CustomUserChangeForm),可以在这里指定
- # add_form = CustomUserCreationForm
- # form = CustomUserChangeForm
- # 注册你的 CustomUser 模型和自定义的 Admin 类
- admin.site.register(CustomUser, CustomUserAdmin)
|