Django查询多次出现的外部对象
我有点难以把这个问题说清楚,所以先说声抱歉。情况是这样的。
我有一个用户在Foursquare签到的表格。每次签到都有一个指向地点的外键。我想要的是“给我所有用户的签到记录,按照他们在每个地点签到的次数排序,并且把签到次数也算在查询结果里”。我还希望列表中每个地点只出现一次。
假设这是用户签到的列表:
A
A
B
A
A
B
B
C
我希望返回的结果是
A (4)
B (3)
C (1)
这个我应该在查询的时候就处理好,还是先把所有数据查询出来,然后再用Python处理呢?
Brenden
1 个回答
1
你只需要给Checkin模型加上标注,然后把它的顺序反过来。
from django.db.models import Count
Checkins.objects.filter(user=my_user).annotate(chkn_count=Count('location')).order_by('-chkn_count')