Django聚合max覆盖查询中的值

问题描述 投票:0回答:1

我正在尝试使用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 ")),则会显示值(当然除了总数)。

python django-rest-framework django-orm
1个回答
1
投票

aggregate information in a queryset有两种方法。 aggregate()方法只生成摘要,而不是查询集中的其他信息。根据您的预期结果,您可能应该使用annotate(),这会将聚合值添加到查询集值。

© www.soinside.com 2019 - 2024. All rights reserved.