如果我的模式是这样的:prefetch_related为多层次
class Publisher(models.Model):
pass
class Book(models.Model):
publisher = models.ForeignKey(Publisher)
class Page(models.Model):
book = models.ForeignKey(Book)
,我想获得Publisher
的查询集我做Publisher.object.all()
。 如果再要确保预取我可以这样做:
Publisher.objects.all().prefetch_related('book_set')`
我的问题是:
- 有没有一种方法使用
select_related
或 我必须用prefetch_related
做这个预取? - 有没有办法预取
page_set
?这不起作用:
Publisher.objects.all().prefetch_related('book_set', 'book_set_page_set')
2.双下划线的作品。 – 2014-11-25 02:18:08
1.如果'Page'具有'OneToOne'字段到'TextContent',它会是:'... prefetch_related('book_set__page_set__text_contents')'或'... select_related('book_set__page_set__text_contents')' – 2014-11-25 02:20:01
我相信它会成为第二个版本。 – jproffitt 2014-11-25 02:25:12