首页 > 解决方案 > Django 查询 用作表达式的子查询返回多行

问题描述

我有一个非常简单的查询,我需要添加一个字段来获得按利益分组的平均价格 - 我尝试过ArrayAgg但没有工作。

properties = (
    House.objects.filter(
        # a lot of filters
    ).annotate(
        prices=ArrayAgg(
            HousePrice.objects.all().values("benefit").annotate(price_avg=Avg("price")).values("benefit_id" "price_avg")
        ),
    )
)

用作表达式的子查询返回的不止一行

与这个模型的关系很大,所以这就是为什么我只想在注释中使用普通的新查询,而不是遍历所有模型之间的关系。

关于如何解决这个问题的任何想法?我不确定这种方式是否好用ArrayAgg

标签: djangodjango-ormdjango-annotatearray-agg

解决方案


推荐阅读