2024-09-28 17:03:00 发布
网友
有没有可能建立这样的关系:
class Games(Base): publishers = relationship(GameCompany).where(GameCompany.role == 'publisher') developers = relationship(GameCompany).where(GameCompany.role == 'developer')
本质上,创建一个model属性,该属性执行连接并具有where子句。在
这是绝对可能的。请阅读sqlalchemy文档的Specifying Alternate Join Conditions部分和示例代码。模型的代码可能如下所示:
sqlalchemy
class GameCompany(Base): id = Column(Integer, primary_key=True) company_id = Column(ForeignKey('games.id')) # ... class Games(Base): __tablename__ = 'games' id = Column(Integer, primary_key=True) # ... publishers = relationship(GameCompany, primaryjoin=and_(GameCompany.game_id == id, GameCompany.role == 'publisher')) developers = relationship(GameCompany, primaryjoin=and_(GameCompany.game_id == id, GameCompany.role == 'developer'))
这是绝对可能的。请阅读
sqlalchemy
文档的Specifying Alternate Join Conditions部分和示例代码。模型的代码可能如下所示:相关问题 更多 >
编程相关推荐