Django如何计算10次最多的事件

时间:2015-01-02 00:24:57

标签: django django-queryset

我有这个型号:

class Liker(models.Model):
    pic = models.IntegerField()
    pic_owners = models.IntegerField()

我想知道找到前10名pic_owners的最有效查询集是什么,即pic_owners的照片最受欢迎?

1 个答案:

答案 0 :(得分:1)

您应该使用aggregation

from django.db.models import Count
rating = Liker.objects.values('pic_owners') \
                      .annotate(Count('pic_owners')) \
                      .order_by('-pic_owners__count')[:10]

此查询将返回带有两个键的dicts列表:' pic_owners'和' pic_owners__count'。