我如何过滤Django查询集以获取出现次数最多的元素?

m528fe3b  于 2023-05-19  发布在  Go
关注(0)|答案(1)|浏览(132)

我试图过滤我的Django模型中出现最多的元素(在本例中,是销售量最大的用户),然后对其进行排序。经过一番研究,我得出了以下解决方案:

best_seller = [seller for seller in Sale.objects.values_list("seller", flat=True).annotate(s_count=Count("seller")).order_by("-s_count")]

seller是包含User对象的Sale表中的一列。给定的代码只返回一个数组,该数组包含(可能?)找到的用户的ID,而不是查询集本身。

mnemlml8

mnemlml81#

使用queryset:

Seller.objects.annotate(s_count=Count('sale_set')).order_by('-s_count')

这将返回Seller的顺序 * 相关 * Sale的数量。

相关问题