如果我的模式是這樣的: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