Django 如何计算出现次数最多的 10 次

Django how to count 10 most occurrences

我有这个型号:

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

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

你应该使用 aggregation:

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

此查询将 return 包含两个键的字典列表:'pic_owners' 和 'pic_owners__count'。