管理网站上的内置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
的管理模型中添加字段?
答案 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)