Django-不使用原始sql将2个查询集外部连接到1个查询集

Django-不使用原始sql将2个查询集外部连接到1个查询集,django,outer-join,django-queryset,Django,Outer Join,Django Queryset,有没有一个选项可以创建一个外部连接2个查询集而不使用原始sql的查询集 我有一个查询集命中1个表- queryset1=Model1.objects.all() 我有另一个查询集,它访问相同的表并进行一些聚合- queryset2 = Model1.objects.filter(relatedField__days__range=(2013-05-11, 2013-05-13)).annotate(s1=Sum(relatedField__field1), s2=Sum(relatedField

有没有一个选项可以创建一个外部连接2个查询集而不使用原始sql的查询集

我有一个查询集命中1个表-

queryset1=Model1.objects.all()

我有另一个查询集,它访问相同的表并进行一些聚合-

queryset2 = Model1.objects.filter(relatedField__days__range=(2013-05-11, 2013-05-13)).annotate(s1=Sum(relatedField__field1), s2=Sum(relatedField__field2))
我想在不使用原始sql的情况下,将第一个查询集与第二个查询集保持外部连接。 如您所见,第二个查询集是第一个查询集的子集。 问题是,我想返回表中的所有对象。 如果某个对象未通过过滤器,我希望在总和字段中显示0。 这就是我想要外部连接的原因


这够清楚了吗?

我不太清楚,但你可能可以构建一个空模型,作为原始模型的代理并使用它


给出一个实际的用例。你举的例子可能在很多方面都有反应。尽可能具体,以获得快速准确的答案。这似乎是多余的?如果不知道更多,我想说你可以跳过第一个查询集。