我有这个型号:
class Liker(models.Model):
pic = models.IntegerField()
pic_owners = models.IntegerField()
我想知道找到前10名pic_owners的最有效查询集是什么,即pic_owners的照片最受欢迎?
答案 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'。