1

次のDjangoモデルを考慮してください。


ParentModel(models.Model):
    ...

ChildModel(models.Model):
    parent = models.ForeignKey(ParentModel, related_name='children')

データベース内にクエリセットとして使用可能なすべての子の特定のサブセットがあると仮定します(これを最初のセットと呼びます)。
ここで、1番目のセットの子が関連しているすべての親のサブセット(2番目のセットと呼びます)にアクセスしたいと思います。

Pythonレベルで最初のセットをループせずに(そして潜在的にDBヒットの線形数を引き起こす)、つまり1つまたは2つのDBヒットだけでそれを行うにはどうすればよいですか?

ありがとうございました!

4

1 に答える 1

4

あなたがというクエリセットを持っていると仮定しますchildren

ParentModel.objects.filter(children__in=children)
于 2009-10-20T09:17:49.867 に答える