2017-01-26 3 views
0
qs = Foo.objects.prefetch_related('items', 'content_object') 

私は[0] ._ prefetched_objects_cacheがDjango、先祖GenericForeignKeyはどこですか?

(外部キーの逆引きである)「アイテム」を含んでいる。しかし_prefetched_objects_cacheには「content_object」はありません適量を見ることができます。

docでは、prefetch_relatedはGenericForeignKeyで動作するとしていますが、 (https://docs.djangoproject.com/en/1.9/ref/models/querysets/#prefetch-related

ここで、プリフェッチされたcontent_objectはどこに保存されていますか?

答えて

0

the docsは言う:クエリが1つのContentTypeをに制限されている場合たとえば

を、GenericForeignKeyによって参照プリフェッチオブジェクトのみがサポートされています。

私はprefetch_relatedは、すべての一般的な外部キーがBarモデルを指して、次のクエリセット、のために働くだろう、ということを理解したよう。

bars = ContentType.objects.get(app_label="myapp", model="bars") 
qs = Foo.objects.filter(content_type='bars', prefetch_related('items', 'content_object') 
関連する問題