2013-03-03 107 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)