django分组排序

在Django中,可以通过使用两个聚合函数来实现分组排序: Count Avg 。通过使用这两个函数,可以对一组对象进行计数并对它们进行平均值计算。

例如,如果你想对一组书籍进行分组并按评分进行排序,可以使用如下代码:

from django.db.models import Count, Avg
books = Book.objects.values('author__name').annotate(average_rating=Avg('rating')).order_by('-average_rating')

在这个例子中,我们通过使用 values 方法选择了我们想要的字段,并使用 annotate 方法计算每个作者的平均评分。最后,我们使用 order_by 方法将结果按照平均评分从高到低进行排序。

  •