如何自定义Wagtail Admin设置->用户列表视图(/admin/users/)?
自定义Wagtail Admin用户列表视图的可见列
要在Wagtail Admin的「设置->用户」列表中添加自定义User模型的额外属性列,只需通过自定义UserAdmin类实现,步骤如下:
1. 创建自定义UserAdmin类
在你的Django应用的admin.py文件中,导入Wagtail默认的UserAdmin和项目的自定义User模型,继承并重写list_display属性,把需要显示的自定义字段追加进去:
from django.contrib.auth import get_user_model from wagtail.users.admin import UserAdmin # 获取项目配置的自定义User模型 CustomUser = get_user_model() class CustomUserAdmin(UserAdmin): # 继承默认列表字段,追加自定义字段(示例为employee_id) list_display = UserAdmin.list_display + ('employee_id',)
2. 注册自定义UserAdmin
先注销系统默认的User模型注册,再注册我们自定义的版本:
from django.contrib import admin # 注销默认的User模型注册 admin.site.unregister(CustomUser) # 注册自定义UserAdmin与自定义User模型 admin.site.register(CustomUser, CustomUserAdmin)
进阶:自定义字段显示内容
如果自定义字段需要更友好的展示(比如关联对象的名称),可以在CustomUserAdmin中定义显示方法,再添加到list_display里:
class CustomUserAdmin(UserAdmin): list_display = UserAdmin.list_display + ('employee_id', 'get_department') def get_department(self, obj): # 假设自定义User模型关联了department字段 return obj.department.name # 设置列的显示名称 get_department.short_description = "所属部门"
注意:确保你已在项目settings.py中通过AUTH_USER_MODEL配置好自定义User模型,示例:
AUTH_USER_MODEL = 'yourapp.CustomUser'
内容的提问来源于stack exchange,提问作者Brylie Christopher Oxley
相关产品推荐
相关产品推荐

