在我的“用户”页面中,我想为每个用户添加更多列字段。
默认情况下,“用户”页面显示用户名,名字,姓氏,电子邮件和工作人员状态,但我还想添加“" Chosen Groups"也要显示。
每个用户可以是零个或多个组的一部分,因此我想显示每个用户所属的所有组(或无)的列表。
我把一些东西放在一起,但我不确定如何实际获取组数据并将其放入"字符串" "选择组"列。
这是我失败的尝试......
class UserAdmin(admin.ModelAdmin):
list_display = ('username', 'email', 'first_name', 'last_name', 'date_joined', 'get_groups')
def get_groups(self, object):
#code...
#User is registered by default, need to unregister than register to apply custom updates to UserAdmin
admin.site.unregister(User)
admin.site.register(User, UserAdmin)
答案 0 :(得分:2)
这是:
def get_groups(self, object):
return u', '.join(g.name for g in object.groups.all()) or 'None'
get_groups.short_description = 'Chosen Groups'
要减少sql查询的数量,您还可以覆盖get_queryset()
方法:
def get_queryset(self, request):
qs = super(UserAdmin, self).get_queryset(request)
return qs.prefetch_related('groups')