qs = Foo.objects.prefetch_related('items', 'content_object')
我可以看到qs [0] ._ prefetched_objects_cache包含'items'(反向查找外键)
但_prefetched_objects_cache中没有'content_object'。
尽管doc说prefetch_related与GenericForeignKey一起使用。 (https://docs.djangoproject.com/en/1.9/ref/models/querysets/#prefetch-related)
那么预存的content_object存储在哪里?
答案 0 :(得分:1)
注意the docs说:
例如,仅当查询限制为一个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')