django を使用して、別の QuerySet から FK 関係の QuerySet を取得しようとしています。
つまり、次のような関係が与えられます
ParentTable (ParentID)
。
ChildTable(ChildID, ParentID
特定の QuerySet
があり、QuerySet で「参照」されるオブジェクトchildren = Child.objects.filter(**some_filters)
の QuerySet が必要です。Parent
children
私の最初の考えは、 so: のようにのみを使用することでした
Parent.objects.filter(id__in=child.only('parent'))
が、SQL クエリを調べると、行に沿って WHERE 句ParentID IN (SELECT subq.ChildID FROM ...
が明らかに望ましくない結果をもたらすことがわかります。(唯一のメソッドを調べたところ、ここでの使用が正しくないことが示されているため、この動作は予期されたものです)
目的のクエリは何かParentID IN (SELECT subq.ParentID FROM ...