Django:从相关的模型集中获取相关集

ape*_*ari 7 python django foreign-keys database-relations

class Book(models.Model):
    # fields

class Chapter(models.Model):
     book = models.ForeignKey(Book)

class Page(models.Model):
     chapter = models.ForeignKey(Chapter)
Run Code Online (Sandbox Code Playgroud)

我想要书A的所有页面,可能没有骑自行每一章来获取页面.

book = Book.objects.get(pk=1)
pages = book.chapter_set.page_set #?!?
Run Code Online (Sandbox Code Playgroud)

Dan*_*man 5

你不能那样做。chapter_set是一个查询集,没有属性page_set。

相反,将其转过来:

Page.objects.filter(chapter__book=my_book)
Run Code Online (Sandbox Code Playgroud)