使用子查询注释具有相关B对象计数的A对象

时间:2019-12-25 06:39:06

标签: django django-models django-orm

我正在尝试用延迟的潜在顾客对象的数量来注释用户。延迟线索的计算很复杂(使用RawSQL),这是使用自定义模型管理器实现的。因此,我正在尝试使用子查询来实现这一点。

MAX_FRAME

但是,我不断收到此错误:

yOffset

更新:

我尝试仅添加('id'),因此我的代码:

MAX_FRAME

这生成了sql查询:

frames

这引发错误:

sq = Lead.delayed.filter(assigned_to_id=OuterRef('pk')) User.objects.annotate(num=Count(Subquery(sq.count())))

我希望将查询生成为:

 ValueError: This queryset contains a reference to an outer query and may only be used in a subquery.

如何使用django ORM做到这一点?

2 个答案:

答案 0 :(得分:0)

替代问题标签可能是如何使用Count()不执行分组(GROUP BY如何在Subquery中进行计数 strong>

检查this answer中是否有自定义Count函数,以便对任何查询集进行简单计数而没有分组。


不幸的是,到目前为止,还没有为此找到本地django选项。

答案 1 :(得分:0)

尽管Oleg的答案与我的要求非常接近,但是在django生成的查询中仍然出现SQL错误。因此,我最终使用cursor.

相关问题