我有这样的查询:
user.ihaveinvited.all().filter(current_status='passive').values('id').distinct()
获取具有特定状态的所有不同用户。我想将其应用于以下内容:
def get_queryset(self, request):
qs = super(UserAdmin, self).get_queryset(request)
qs = qs.annotate(uniq_passive_invites=ALLUSERS.ihaveinvited.all().filter(current_status='passive').values('id').distinct()
所以问题是将所有用户的查询作为查询集运行吗?
答案 0 :(得分:1)
我看了另一个question you posted,他们似乎密切相关。使用过滤器添加计数需要更多的工作,但可以实现。
def get_queryset(self, request):
qs = super(UserAdmin, self).get_queryset(request)
qs = qs.annotate(count=Sum(
Case(
When(ihaveinvited__invitee__current_status='passive', then=1),
default=0,
output_field=models.IntegerField()
)
))
return qs