我的Django管理员的每个用户都关联了许多个人资料。我想在User表中显示一列,其中包含与每个用户关联的Profiles数量。我怎么能这样做?
您可以在此处查看Profile
模型的代码:http://codepad.org/9yLet9el。
这是我尝试过的。 admin.py
的相关部分是:
def profile_count(self, user):
return user.profiles.count()
class MyUserAdmin(admin.ModelAdmin):
list_display = UserAdmin.list_display + 'profile_count'
admin.site.unregister(User)
admin.site.register(User, MyUserAdmin)
但由于某种原因,用户管理表保持不变。我究竟做错了什么?感谢。
答案 0 :(得分:1)
您可以在list_display
中添加callable。
所以只需编写一个函数 - 给定User
- 将返回配置文件的数量,例如:
def profile_count(user):
return user.profiles.count()
class UserAdmin(admin.ModelAdmin):
...
list_display = [..., profile_count]
...
或者,您可以尝试将'profiles.count'
直接放入list_display
,但我怀疑它是否有效。
答案 1 :(得分:-1)
我明白了。只需将其添加到admin.py
。
def profile_count(self, user):
return user.profile_set.count()
UserAdmin.profile_count = profile_count
UserAdmin.list_display += ('profile_count',)