3
衆所周知,ManytoMany關係不能列在list_display中。是否有任何解決方法使它像group1,group2等?Django - 用戶管理 - 將組添加到list_display
衆所周知,ManytoMany關係不能列在list_display中。是否有任何解決方法使它像group1,group2等?Django - 用戶管理 - 將組添加到list_display
我不明白你的例子(group1,group2),但你當然可以使用任何功能作爲更改列表視圖中的列,這意味着你可以做你想要展示的東西!
實施例:
class MyModelAdmin(admin.ModelAdmin):
list_display = ('foo', 'bar')
def foo(self):
return "This column is Foo"
def bar(self, obj):
try:
return obj.m2m.latest('id')
except obj.DoesNotExist:
return "n/a"
# there's a few more things you can do to customize this output
def bar(self, obj):
return '<span style="color:red;">By the way, I am red.</span>'
bar.short_description = "My New Column Label"
bar.allow_tags = True
獎金:顯示組作爲用戶濾波器:
class SBUserAdmin(UserAdmin):
list_filter = UserAdmin.list_filter + ('groups__name',)
list_display = ('username','custom_group',)
def custom_group(self, obj):
"""
get group, separate by comma, and display empty string if user has no group
"""
return ','.join([g.name for g in obj.groups.all()]) if obj.groups.count() else ''
admin.site.unregister(User)
admin.site.register(User, SBUserAdmin)