9
class Book(models.Model):
    # fields

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

class Page(models.Model):
     chapter = models.ForeignKey(Chapter)

おそらくすべての章を循環させてページをフェッチすることなく、本Aのすべてのページが必要です。

book = Book.objects.get(pk=1)
pages = book.chapter_set.page_set #?!?
4

2 に答える 2

9

そんなことはできません。chapter_set はクエリ セットで、属性 page_set はありません。

代わりに、それを好転させます:

Page.objects.filter(chapter__book=my_book)
于 2013-03-03T16:48:14.763 に答える
4

クロスモデルをクエリするときは、二重のアンダースコアが役立つ場合があります

book = Book.objects.get(pk=1)
pages = Page.objects.filter(chapter__book=book)
于 2013-03-03T16:47:00.800 に答える