You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Django admin面板为User Model添加自定义字段?

原因分析

Django自带的UserAdmin类是为原生User模型设计的,其字段显示配置(如list_display、fieldsets)为硬编码逻辑,仅识别原生User的默认字段。即便你通过抽象模型扩展User并添加自定义字段,UserAdmin也不会自动读取抽象模型的配置或新增字段,导致这些字段无法在admin面板中显示。

解决方法

需要自定义UserAdmin类,继承原生UserAdmin并手动添加自定义字段的配置,再替换默认的UserAdmin完成注册。

步骤1:确认自定义User模型配置

首先确保settings.py中已指定自定义的User模型:

AUTH_USER_MODEL = 'your_app.User'

步骤2:编写自定义UserAdmin类

在对应app的admin.py中添加以下代码:

from django.contrib import admin
from django.contrib.auth.admin import UserAdmin
from .models import User

class CustomUserAdmin(UserAdmin):
    # 配置列表页显示的字段,加入自定义字段
    list_display = ('username', 'email', 'first_name', 'last_name', 'custom_field', 'is_staff')
    
    # 配置编辑页的字段分组,将自定义字段加入指定分组
    fieldsets = UserAdmin.fieldsets + (
        ('自定义信息', {'fields': ('custom_field',)}),
    )
    
    # 配置新增用户页的字段(如需在创建时设置该字段则添加)
    add_fieldsets = UserAdmin.add_fieldsets + (
        ('自定义信息', {'fields': ('custom_field',)}),
    )

# 注销默认UserAdmin,注册自定义Admin类
admin.site.unregister(User)
admin.site.register(User, CustomUserAdmin)

关键配置说明

  • list_display:控制admin列表页面显示的字段,添加自定义字段后即可在列表中查看。
  • fieldsets:控制编辑页面的字段分组逻辑,可将自定义字段加入现有分组或新增独立分组,实现编辑时的字段可见性。
  • add_fieldsets:控制新增用户页面的字段集合,若需要在创建用户阶段就设置该字段,必须配置此属性。

内容的提问来源于stack exchange,提问作者David

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.14 11:39:56