ほとんどのプロジェクトで、メモリに最も負荷がかかるのは、次のようなビッグ データ クエリが Python メモリに読み込まれるときです。
Model.objects.filter(...).order_by(...)[:50]
# The second [:50] is evaluated, the entire dataset is shoved into memory.
django docs: .defer()および.only() queryset メソッドは、メモリ使用量を削減するためのヒントとして言及されていますが、それらについてはあまり言及されていません。
私の主な質問は、モデルインスタンスを .save() または .delete() しようとするとき、pk 以外のすべてが延期されたモデルでそれを呼び出すだけでよいのでしょうか? 元:
model = Model.objects.only("pk").get(pk=12)
# is model.save() or model.delete() okay here?
おそらく他にも .only() と .defer() に注意が必要な風変わりなケースがありますが、今のところ思いつきません。しかし、それらは非常に便利な方法のように思えます..誰かが思いついたら、投稿してください、ありがとう.