【发布时间】:2012-05-24 05:08:19
【问题描述】:
我正在寻找一种方法来查询 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)
在这种情况下不起作用。 Pages 的数量很大(因此在查询章节时使用 lazy="dynamic" 参数),我不想通过在 Page 表中添加 book_id 列来反规范化。
【问题讨论】:
标签: database sqlalchemy