私は、QuerySetsが怠け者であり、いつもデータベースにぶつかるのを避けるために特定の条件でのみevaluatedであることを知っています。Django QuerySetチェイン、サブセット、キャッシング
一般的なクエリセット(すべてのアイテムを取得)が設定されていて、それを使用してより洗練されたクエリセット(フィルタを追加するなど)を作成すると複数のSQLクエリにつながるかどうかはわかりません。
例:
all_items = MyModel.objects.all()
subset1 = all_items.filter(**some_conditions)
subset2 = subset1.filter(**other_condition)
1)が、これは3種類のSQLクエリを作成しますか? 3つの変数が評価されるかどうか(たとえば、反復するかどうかなど)はすべて異なりますか?
2)は、この効率的ですかリストに変換し、その後、すべてのアイテムを取得し、Pythonでそれらをフィルタリングする方が良いでしょうか?
あなたはデータへのアクセスを開始する場合にのみこれは、データベースにヒットします。 –
サブセット2にしかアクセスできないとします。 – Leonardo