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

时间:2017-04-11 13:32:53

标签: python django

管理网站上的内置django group模型仅显示name

enter image description here

但我希望包含已经属于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的管理模型中添加字段?

2 个答案:

答案 0 :(得分: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类。你可以删除它。

答案 1 :(得分:2)

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

from django.contrib.auth.admin import GroupAdmin

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

admin.site.unregister(Group)
admin.site.register(Group,GroupsAdmin)
相关问题