【发布时间】:2017-10-12 05:33:42
【问题描述】:
我有两个属性的模型:
class Fruit(models.Model)
name = models.CharField(max_length=30)
days_left_to_consumption = models.IntegerField()
这给了我数据库对象:
{"name":"apple", "days_left_to_consumption": 2},
{"name":"apple", "days_left_to_consumption": 3},
{"name":"pineaple", "days_left_to_consumption": 2},
{"name":"pineaple", "days_left_to_consumption": 1}
我想创建查询集以按“名称”属性对结果进行分类(每个不同的水果名称只出现一次),但要为每个具有较高“days_left_to_consumption”值的水果对象获取。我想从上面的例子中得到的结果是:
{"name":"apple", "days_left_to_consumption": 3},
{"name":"pineaple", "days_left_to_consumption": 2}
你有什么想法吗?
【问题讨论】:
-
至少,您可以使用 Fruit.objects.filter(name=FRUIT_NAME).order_by("-days_left_to_consumption").first() 分别找到每个名称的最高值,然后将它们组合起来事实
标签: python django python-3.x django-models django-queryset