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

如何修改Django Admin中用户列表的显示字段?(Django 2.0)

解决Django 2.0中修改Admin用户视图字段不生效的问题

我之前也碰到过一模一样的情况,直接修改UserAdmin的类属性有时候会因为Django的加载顺序或者内部缓存机制不生效,尤其是在Django2.0这个版本里。试试下面这个更稳妥的方法:

正确实现方式:继承UserAdmin自定义子类

别直接修改原生的UserAdmin,而是创建它的子类,在子类里重写list_display,再把这个子类绑定到User模型上注册。代码如下:

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

# 自定义用户管理类,继承自原生UserAdmin
class CustomUserAdmin(UserAdmin):
    # 在这里定义你想要显示的字段
    list_display = ['email', 'first_name', 'last_name', 'is_active', 'last_login']

# 先取消默认的User模型注册
admin.site.unregister(User)
# 注册自定义的管理类
admin.site.register(User, CustomUserAdmin)

为什么原代码不生效?

Django启动时会先注册默认的UserAdmin,如果你的代码只是直接修改UserAdmin.list_display,可能修改操作在默认注册之后才执行,导致Django没识别到更新后的配置。通过继承的方式,我们明确告诉Django要用我们自定义的管理类,就不会有这个问题了。

额外注意事项

  • 修改完代码后一定要重启Django开发服务器,Admin的配置变更需要重启才能生效。
  • 如果你的项目里其他地方也用到了UserAdmin,这种继承方式不会影响它们的使用,比直接修改原生类更安全。

内容的提问来源于stack exchange,提问作者Hugo Alain Oliva

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.28 06:25:20