Mat*_*ian 3 python sqlalchemy flask-sqlalchemy
是否可以建立这样的关系:
class Games(Base):
publishers = relationship(GameCompany).where(GameCompany.role == 'publisher')
developers = relationship(GameCompany).where(GameCompany.role == 'developer')
Run Code Online (Sandbox Code Playgroud)
本质上,创建一个执行连接并具有 where 子句的模型属性。
GameCompany(game_id, company_id, role)
Run Code Online (Sandbox Code Playgroud)
这是绝对有可能的。请阅读文档的指定备用连接条件部分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'))
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3748 次 |
| 最近记录: |