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

Django自定义User模型字段未在Admin后台显示,如何解决?

解决Django Admin不显示自定义User模型新增字段的问题

这问题我之前也碰到过!原因是默认的Django UserAdmin组件并没有自动识别你新增的name和contact字段,得我们手动扩展Admin的配置,把这些字段加进去才行。具体操作步骤如下:

步骤1:在你的authentication应用中创建/修改admin.py文件

打开apps/authentication/admin.py(如果没有就新建一个),然后添加以下代码:

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

# 自定义UserAdmin类,继承默认的UserAdmin
class CustomUserAdmin(UserAdmin):
    # 配置编辑用户页面的字段分组
    fieldsets = (
        # 保留默认UserAdmin的所有字段组
        *UserAdmin.fieldsets,
        # 新增一个分组,用来放我们自定义的字段
        (
            '额外信息',  # 这个分组名称可以根据需求修改
            {
                'fields': ('name', 'contact'),  # 填入你新增的字段
            },
        ),
    )
    # 配置添加用户页面的字段(如果需要在新建用户时就能填写这些字段的话)
    add_fieldsets = (
        *UserAdmin.add_fieldsets,
        (
            '额外信息',
            {
                'fields': ('name', 'contact'),
            },
        ),
    )

# 用自定义的CustomUserAdmin注册我们的User模型
admin.site.register(User, CustomUserAdmin)

步骤2:重启Django开发服务器

修改完admin.py后,记得重启你的Django开发服务器,这样新的Admin配置才能生效。

原理说明

默认的UserAdmin是为Django原生的User模型设计的,它的fieldsets和add_fieldsets里只包含原生User模型的字段(比如username、email、password这些)。我们通过继承UserAdmin并扩展这两个属性,把自定义的字段加入进去,Admin页面就会显示这些字段了。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.28 06:12:53