Django按最常见值排序

5
我有一个代表食品车的模型。
class FoodTruck(models.Model):
    name = models.CharField(max_length=30)
    location = models.TextField()
    creation_date = models.DateTimeField(default=datetime.now)
    start_date = models.DateTimeField(null=True, blank=True)

    def __unicode__(self):
      return self.name

这个表格中会有许多相同名称但不同位置的行。我想按名称(出现次数最高的)对列表进行排序。

示例表格:

name | location | creation_date | start_date
clover | ABC | ...
chens | XYZ | ...
clover | ABC | ...

我的目标是列出所有位置在最近30天内出现的美食卡车及其出现次数,按照出现频率从高到低排序。

1个回答

16

这是一个聚合的工作。

from django.db.models import Count
FoodTruck.objects.values_list('name').annotate(truck_count=Count('name')).order_by('-truck_count')

Count('*') 在表达式中似乎也可以正常工作。 - Tuttle

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接