我想知道是否有一种方法可以将两列添加到Django管理显示列表中,其中包含活动用户计数和非活动用户计数,如下所示:
class UserAdmin(django.contrib.admin.ModelAdmin):
list_display = ('name', 'num_active_user', 'num_non_active_user', )
def num_users(self, obj):
return obj.num_users
num_users.short_description = "Number Of Users"
num_users.admin_order_field = 'num_users'
def get_queryset(self, request):
qs = super(UserAdmin, self).get_queryset(request)
return qs.annotate(num_users=Count('user', distinct=True))
是否有方法在这一行中添加条件,如:
return qs.annotate(num_users=Count('user__is_active=True', distinct=True))
发布于 2016-02-06 06:22:28
我使用以下技巧来解决这个问题:
return qs.annotate(nnum_active_users=django.db.models.Count(django.db.models.Case(django.db.models.When(
user__is_active=True, then=1, ))
)
)
https://stackoverflow.com/questions/34832553
复制