0

model.py で次のように定義された順序付きテーブルがあります (ブログは別のテーブルです):

class OrderedBlog(Blog):
  class Meta:
    ordering = ["-time_created"]
    proxy = True

次のようなことをしようとすると:

OrderedBlog.objects.filter(time_created__lt = a_specific_time)

これにより、Blog のすべてのエントリがメモリに保存されますか? ありがとう!

4

1 に答える 1

1

いいえ、そうではありません。クエリセットを反復処理する場合、Django はクエリセットの各要素をメモリにロードし始め、一度に 1 つずつインスタンス化します。

メモリ使用量が気になる場合は、Queryset.iterator()を使用するか、のみを使用して関心のあるフィールドのみを取得することをお勧めします。

于 2013-01-23T22:51:46.580 に答える