Django如何计算最多发生的10次

Django如何计算最多发生的10次,django,django-queryset,Django,Django Queryset,我有这个模型: class Liker(models.Model): pic = models.IntegerField() pic_owners = models.IntegerField() 我想知道查找前10名图片用户(即图片最受欢迎的图片用户)最有效的查询集是什么?您应该使用: 此查询将返回一个包含两个键的dict列表:“pic\u owner”和“pic\u owner\u count” from django.db.models import Count ratin

我有这个模型:

class Liker(models.Model):
    pic = models.IntegerField()
    pic_owners = models.IntegerField()
我想知道查找前10名图片用户(即图片最受欢迎的图片用户)最有效的查询集是什么?

您应该使用:

此查询将返回一个包含两个键的dict列表:“pic\u owner”和“pic\u owner\u count”

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