ManyToManyからクエリセットにすべてのレコードを取得するための最も効率的な方法は何ですか?
例を挙げるとEvents
、ManyToManyという名前のモデルからという名前のモデルがあり、を含むクエリセットがあるItems
としますEvents
。クエリセット内のすべてのItems
ものを含むクエリセットを取得するにはどうすればよいEvents
ですか?
単一のイベントの場合、次のようになりますEvents.items.all()
。しかし、これはクエリセットであるため、実行できません。
ありがとう
Items.filter(event_set__in=some_events_qs)
それをします。これは、遅延評価されたネストされたクエリを使用しますが、ドキュメントに記載されているパフォーマンスの考慮事項を参照してください。
が最初のクエリセットのItem
複数のイベントに属している場合、これは重複を返す可能性があります。それがどのように機能するかを思い出せません。もしそうなら、それ.distinct()
をクリーンアップしますが、パフォーマンスにも影響を与える可能性があります。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加