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

自定义Django Admin后用户与组模块消失,如何恢复?

恢复Django自定义AdminSite中的用户和组模块

这个问题我之前也碰到过~当你替换默认的AdminSite为自定义的MyAdminSite时,Django不会自动帮你注册用户和组这两个内置模型的管理界面,因为默认的admin.site是预先帮你做好了这一步的,而自定义的站点需要手动来处理。

你只需要在代码中手动注册User和Group模型及其对应的默认Admin类即可,具体步骤如下:

步骤1:导入所需的模型和Admin类

在你的models.py(或者专门的admin.py文件)顶部添加以下导入语句:

from django.contrib.auth.models import User, Group
from django.contrib.auth.admin import UserAdmin, GroupAdmin

步骤2:在自定义AdminSite中注册用户和组

有两种常用的方式可以完成注册:

方式一:在MyAdminSite的初始化方法中注册

修改你的MyAdminSite类,添加__init__方法来注册这两个模型:

class MyAdminSite(admin.AdminSite):
    def __init__(self, name='admin'):
        super().__init__(name)
        # 注册用户和组的管理界面
        self.register(User, UserAdmin)
        self.register(Group, GroupAdmin)
    
    def my_view(self, request):
        return HttpResponse("Test")
    
    def get_urls(self):
        from django.urls import path
        urlpatterns = super().get_urls()
        urlpatterns += [
            path('my_view/', self.admin_view(self.my_view))
        ]
        return urlpatterns

方式二:在自定义站点实例化后注册

如果你不想修改MyAdminSite类的结构,也可以在实例化站点之后直接注册:

admin.site = MyAdminSite()
# 手动注册用户和组
admin.site.register(User, UserAdmin)
admin.site.register(Group, GroupAdmin)

完成以上操作后,重启你的Django服务,就能在自定义的Admin面板中看到用户和组的管理模块啦~

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.08 08:28:12