Django Aggregation Max覆盖查询中的值

时间:2019-04-18 18:06:39

标签: python django-rest-framework django-orm

我正在尝试使用django数据库抽象显示一些数据。

我需要显示今年的汽车总数及其总数。

我的尝试

Cars.objects.filter(car__updated__year=datetime.now().year).values("car_id")).annotate(total=Sum("quantity")).values_list("title", "quantity").aggregate(Max("quantity"))

我的预期结果是:

{
    "cars": {
        "title": "toyota",
        "quantity__max": 8,
    }
}

但是.aggregate(Max("quantity"))覆盖了“标题”,我收到了这个信息:

{
    "cars": {
        "quantity__max": 8,
    }
}

没有.aggregate (Max (" quantity "))出现的值(当然除了总数)。

1 个答案:

答案 0 :(得分:1)

aggregate information in a queryset有两种方法。 aggregate()方法仅产生摘要,而不产生查询集中的其余信息。从预期结果来看,您可能应该改用annotate(),这会将您的汇总值添加到查询集值中。