Wenn meine Modelle wie folgt aussehen:prefetch_related für mehrere Ebenen
class Publisher(models.Model):
pass
class Book(models.Model):
publisher = models.ForeignKey(Publisher)
class Page(models.Model):
book = models.ForeignKey(Book)
und ich möchte den queryset für Publisher
ich Publisher.object.all()
tun bekommen. Wenn dann sicherstellen möchten, kann ich Prefetch tun:
Publisher.objects.all().prefetch_related('book_set')`
Meine Fragen sind:
- Gibt es eine Möglichkeit, diese Prefetching zu tun
select_related
oder ich mitprefetch_related
verwenden müssen? - Gibt es eine Möglichkeit, die
page_set
vorab abzurufen? Dies funktioniert nicht:
Publisher.objects.all().prefetch_related('book_set', 'book_set_page_set')
2. Der doppelte Unterstrich funktioniert. –
1. Wenn 'Page' ein' OneToOne' Feld muss 'TextContent', wäre es:' ... prefetch_related ('book_set__page_set__text_contents') 'oder' ... select_related ('book_set__page_set__text_contents') ' –
ich glaube, es würde sei die zweite Version. – jproffitt