0

我正在寻找一种方法来查询 SQLAlchemy 中的一对多关系链。给定以下模型(Base 是声明性基础):

class Book(Base):
    id = Column(Integer, primary_key=True)
    chapters = relationship("Chapter", backref="book")

class Chapter(Base):
    id = Column(Integer, primary_key=True)
    book_id = Column(Integer, ForeignKey(Book.id))
    pages = relationship("Page", backref="chapter", lazy="dynamic")

class Page(Base):
    id = Column(Integer, primary_key=True)
    chapter_id = Column(Integer, ForeignKey(Chapter.id))

我需要通过它们关联的书查询页面实体(通过章节)。然而,

Page.query.filter(Page.chapter.book_id == 1)

在这种情况下不起作用。页面的数量很大(因此lazy="dynamic"查询章节时的参数),我不想通过向book_id页面表添加一列来反规范化。

4

1 回答 1

1
qry = Page.query.join(Chapter).join(Book).filter(Book.id == 1)
于 2012-05-23T21:08:19.747 回答