が、私は2つの単純なDjangoのモデルを持っている必要がありました。は、トラブルシューティングが
queryset = PhotoStream.objects.order_by('-creation_time').prefetch_related('photo_set')
for obj in queryset:
print obj.photo_set.all()
#print connection.queries
は、デバッグツールバー経由で確認する、私は私場合は、上記のはまさにそれがクエリの同じ数を行っているでしょうないことが判明しました:私は、フォトストリームのクエリセットを形成する際に、すべての関連する写真を先取りするには、次のようにしようとしていますステートメントのprefetch_related
部分を削除します。それは明らかに機能していません。私もprefetch_related('cover')
を試してみました - どちらもうまくいきません。
私が間違っていることを誰かが指摘することはできますか?私の目標は、クエリーセット内のフォトストリームごとに関連するすべての写真を取得することです。どうすればこれを行うことができますか?
印刷connection.queries
forループを実行した後に他のものの間で、含まれています
SELECT ("links_photo_which_stream"."photostream_id") AS "_prefetch_related_val", "links_photo"."id", "links_photo"."owner_id", "links_photo"."image_file" FROM "links_photo" INNER JOIN "links_photo_which_stream" ON ("links_photo"."id" = "links_photo_which_stream"."photo_id") WHERE "links_photo_which_stream"."photostream_id" IN (1)
注:私は私のモデルが質問に投稿された簡略化されてきた、それゆえクエリは上記ません出力に実際に表示されるいくつかのフィールドを含みますが、この質問とは無関係です。ここ
生成されているクエリを投稿できますか? – solarissmoke
@solarissmoke: –
ありがとうございました。各写真が個別に取得されている他のクエリを見ることができますか? – solarissmoke