【发布时间】:2022-01-23 07:26:55
【问题描述】:
我有一个查询,我正在尝试注释字段 tail_tip 的每个值的计数。我的原始查询过滤了相关表,因此有必要使用 distinct()。
我不完全确定如何描述,但是当我注释不同的查询时,查询不再不同。这是我在 shell 中使用的查询。
// Without distinct()
Ski.objects.filter(published=True, size__size__in=[178, 179, 180, 181, 182, 183, 184]).count()
// 318
skis = Ski.objects.filter(published=True, size__size__in=[178, 179, 180, 181, 182, 183, 184]).distinct()
skis.count()
// 297
skis.values('tail_tip').order_by('tail_tip').annotate(count=Count('tail_tip'))
// <QuerySet [{'tail_tip': 'flat', 'count': 99}, {'tail_tip': 'full_twin', 'count': 44}, {'tail_tip': 'partial_twin', 'count': 175}]>
// total count = 318
鉴于skis 已经是distinct() 我不知道为什么当我对其进行注释时,总计数等于非明确查询。
【问题讨论】:
标签: python django django-queryset django-annotate