使用 django,我试图从另一个 QuerySet 获取 FK 关系的 QuerySet。
也就是说,给定这样的关系:
ParentTable (ParentID)
和
ChildTable(ChildID, ParentID
我有一个特定的 QuerySet
children = Child.objects.filter(**some_filters)
,我需要一个 QuerySet 用于 QuerySet 中Parent
“引用”的对象children
。
我最初的想法是只使用,像这样:
Parent.objects.filter(id__in=child.only('parent'))
,但检查 SQL 查询表明,它给出了一个 WHERE 子句ParentID IN (SELECT subq.ChildID FROM ...
,显然会产生不希望的结果。(检查唯一方法显示我在这里的使用不正确,所以这种行为是意料之中的)
所需的查询将是ParentID IN (SELECT subq.ParentID FROM ...