【问题标题】:Django - Change Fields in Group Admin ModelDjango - 更改组管理模型中的字段
【发布时间】:2017-04-11 13:32:53
【问题描述】:

admin 站点内置的 django group 模型只显示name

但我想包含已经属于 group 模型的其他字段,例如 id

我已尝试使用以下 admin.py 设置添加这些字段:

from django.contrib import admin
from django.contrib.auth.models import Group


class GroupsAdmin(admin.ModelAdmin):
    list_display = ["name", "pk"]
    class Meta:
        model = Group

admin.site.register(Group, GroupsAdmin)

但这会返回错误:

django.contrib.admin.sites.AlreadyRegistered: The model Group is already registered.

我已在管理员上成功注册了其他模型(我已创建),但以上不适用于那些已经是 django 一部分的模型。

如何在管理模型中为Group 添加字段?

【问题讨论】:

    标签: python django


    【解决方案1】:

    接受的答案是正确的,但是,我想指出,如果您的目标只是扩展而不是修改,您可以从 GroupAdmin 继承:

    from django.contrib.auth.admin import GroupAdmin
    
    class GroupsAdmin(GroupAdmin):
        list_display = ["name", "pk"]
    
    admin.site.unregister(Group)
    admin.site.register(Group,GroupsAdmin)
    

    【讨论】:

      【解决方案2】:

      您需要先从内置的Group 模型中注销它,然后再使用您的自定义GroupAdmin 模型再次注册。

      所以:

      class GroupsAdmin(admin.ModelAdmin):
          list_display = ["name", "pk"]
          class Meta:
              model = Group
      
      admin.site.unregister(Group)
      admin.site.register(Group, GroupsAdmin)
      

      另外,Meta 类不是必需的。你可以删除它。

      【讨论】:

        最近更新 更多