Django - 更改组管理模型中的字段

Nic*_*gel 3 python django

group管理站点上的内置 django模型仅显示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)
Run Code Online (Sandbox Code Playgroud)

但这会返回错误:

django.contrib.admin.sites.AlreadyRegistered: The model Group is already registered.
Run Code Online (Sandbox Code Playgroud)

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

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

nik*_*k_m 8

您需要先从内置Group模型中取消注册,然后再使用自定义模型重新注册GroupAdmin

所以:

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

admin.site.unregister(Group)
admin.site.register(Group, GroupsAdmin)
Run Code Online (Sandbox Code Playgroud)

另外,Meta课程不是必需的。您可以将其删除。


fil*_*ilt 5

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

from django.contrib.auth.admin import GroupAdmin

class GroupsAdmin(GroupAdmin):
    list_display = ["name", "pk"]

admin.site.unregister(Group)
admin.site.register(Group,GroupsAdmin)
Run Code Online (Sandbox Code Playgroud)