首页 > 解决方案 > SQLAlchemy 具有重复属性的一对多关系

问题描述

我承认我对 SQLAlchemy 和 SQL 很陌生。我试图获得一个Matchwhich 引用两个Players,其中Player.matches反向引用Match它们所在的任何位置Match.PlayerAMatch.PlayerB

class Player(Base):
    __tablename__ = "players"
    id = Column(Integer, primary_key=True)
    matches = relationship("Match")

class Match(Base):
    __tablename__ = "matches"
    id = Column(Integer, primary_key=True)
    playerA_id = Column(Integer, ForeignKey("players.id"))
    playerB_id = Column(Integer, ForeignKey("players.id"))

    playerA = relationship("Player", foreign_keys=playerA_id, back_populates="matches")
    playerB = relationship("Player", foreign_keys=playerB_id, back_populates="matches")

我无法解决的当前错误:

sqlalchemy.exc.AmbiguousForeignKeysError:无法确定关系 Player.matches 上的父/子表之间的连接条件 - 有多个外键路径链接表。指定“foreign_keys”参数,提供那些列的列表,这些列应该被视为包含对父表的外键引用。

标签: pythonsqlalchemy

解决方案


推荐阅读