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

z9smfwbn  于 2022-11-18  发布在  Go
关注(0)|答案(2)|浏览(162)

管理站点上内置的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.

我已经成功地在admin上注册了其他的模型(我已经创建了),但是上面的方法对那些已经是django的一部分的模型不起作用。
如何在Group的管理模型中添加字段?

pu82cl6c

pu82cl6c1#

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

from django.contrib.auth.admin import GroupAdmin

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

admin.site.unregister(Group)
admin.site.register(Group, GroupsAdmin)
gtlvzcf8

gtlvzcf82#

您需要先从内置的Group模型中注销它,然后再用自定义的GroupAdmin模型重新注册它。
因此:

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

admin.site.unregister(Group)
admin.site.register(Group, GroupsAdmin)

另外,Meta类也不是必需的,可以将其删除。

相关问题