首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Django:如何根据两列获取特定列的计数

Django:如何根据两列获取特定列的计数
EN

Stack Overflow用户
提问于 2016-10-13 06:09:27
回答 1查看 80关注 0票数 0

我希望根据approval_transaction_type和approval_type列获取该表的用户id的计数。

预期的结果将是。

审批事务类型ID (60)

  • 批准类型ID (65) =2个用户
  • 批准类型ID (64) =2个用户
  • 批准类型ID (63) =2个用户
  • 批准类型ID (62) =2个用户
  • 批准类型ID (61) =2个用户

我当前要实现的代码是这样的,但是它覆盖子列表并返回不正确的结果(我不明白为什么最后一个数组将覆盖所有数组):

代码语言:javascript
复制
for transaction in transaction_types:

        # Initial Array 
        transaction["approval_types"] = []

        for approval_type in approval_types:

            # Get Count of Users
            approval_type["count"] = Model.objects.filter(approval_transaction_type=transaction['id'],approval_type=approval_type['id']).values().count()

            # Assign this sub list to main list
            transaction["approval_types"].append(approval_type)

如何在不循环和使用queryset的情况下获得计数?如果有什么不清楚的话请告诉我。谢谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-10-13 06:18:15

它可以在一个查询中完成。基于这个Django equivalent for count and group by

代码语言:javascript
复制
Model.objects.values('approval_type').annotate(Count('user'))
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40013514

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档