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'。
我有这个型号:
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'。