Python 如何将queryset列添加到另一个queryset?

Python 如何将queryset列添加到另一个queryset?,python,django,django-queryset,Python,Django,Django Queryset,我有这个问题,我已经搜索了好几天,但我仍然没有找到解决方法。 我有一个querysetq1向我显示了一个型号id和一个列可用 我想将该列添加到Model.objects.all()results中,但问题是q1是计算可用金额的查询结果,因此没有可参考的表或模型。 有什么建议或解决方案吗 示例代码: q1=Offer.Suboffer.through.objects.values("offer_id","suboffer_id").annotate(avai

我有这个问题,我已经搜索了好几天,但我仍然没有找到解决方法。 我有一个queryset
q1
向我显示了一个
型号id
和一个列
可用
我想将该列添加到
Model.objects.all()
results中,但问题是
q1
是计算可用金额的查询结果,因此没有可参考的表或模型。 有什么建议或解决方案吗

示例代码:

q1=Offer.Suboffer.through.objects.values("offer_id","suboffer_id").annotate(available=F("suboffer_id__Product_offer_id__Store_Amount")/F("suboffer_id__Amount")).values("offer_id", available=Min("available"))
我在项目的
OfferList视图
获取查询集
方法中

因此,该方法返回的查询集是
Offer.objects.all()
。 在返回之前,我想添加queryset
q1
available

q2=Offer.objects.all()
因此,我需要一种方法来使用这两个查询集q1和q2进行左连接,基本上设置输出查询集q2中可用的列

更新

我试图使q1查询集类似于q2,将q2字段手动添加到q1

q2=q1.values(available,Price=(F"offer_id__Price"),id=F("offer_id"))
(*我总结了这些值,但实际上我手动插入了6个值以使其与q2 queryset兼容)

以这种方式返回q2实现我想要的。。。但是我仍然想知道一种正确的方法,因为它看起来非常乏味,而且对于包含大量列的表来说,这应该是不可能的

最后更新 我想我明白了。添加OuterRef和子查询,并修改q1以将其转换为子查询

从django.db.models导入OuterRef,子查询
q1=q1.过滤器(offer_id=OuterRef(“pk”))
q2=Offer.objects.annotate(available=子查询(q.values(“available”))

请添加一些示例代码。@Glenn DJ如果还需要什么,请告诉我