0

クエリセットをループして、1 対多のフィールドを取得しています。ここで、呼び出しごとに、実行されるクエリがあります。Django 1.4 には prefetch_related があります。Django 1.3.1 で同様のことを行うにはどうすればよいですか?

4

1 に答える 1

0

https://github.com/ionelmc/django-prefetchを試してください

いいですね:

オブジェクトに関連データが必要な場合に発生する「1+N クエリ」の問題を解決する、Django 用のシンプルで汎用的なモデル関連データ プリフェッチ フレームワーク。ほとんどの場合、前方関係 (何かへの外部キー) があり、select_related を使用して同じクエリでそのデータを取得できます。ただし、場合によっては、モデルをそのように設計できず、逆のリレーション (オブジェクトへの外部キーを持つモデル) からのデータが必要になります。Django 1.4 にはこのための prefetch_related がありますが、このフレームワークは Django 1.4 の prefetch_related queryset メソッドよりも優れた柔軟性を提供しますが、データのマッピングおよびクエリ関数を作成するコストがかかります。これには、prefetch_related ではできないことができるという利点があります (下記の latest_book の例を参照してください)。

于 2012-11-15T14:22:30.093 に答える