2013-03-03 113 views
4
class Book(models.Model): 
    # fields 

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

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

我想要書A的所有頁面,可能沒有循環每一章來獲取頁面。Django:從相關的一組模型中獲取相關集

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

回答

2

你不能這樣做的。 chapter_set是一個查詢集合,它沒有屬性page_set。

相反,將其翻過來:

Page.objects.filter(chapter__book=my_book) 
2

當查詢Cross車型,雙下劃線可以幫助

book = Book.objects.get(pk=1) 
pages = Page.objects.filter(chapter__book=book)