Отношение SQLAlchemy One-to-Many с повторяющимся свойством

avatar
aosborne
8 августа 2021 в 22:20
46
0
1

Должен признать, что я новичок в SQLAlchemy и SQL в целом. Я пытаюсь получить Match, который ссылается на два Players, где Player.matches обратные ссылки на любой Match, где они либо Match.PlayerA, либо Match.PlayerB.<704291921948>.

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 - существует несколько путей внешнего ключа, связывающих таблицы. Укажите аргумент «внешние_ключи», предоставляющий список тех столбцов, которые следует считать содержащим ссылку внешнего ключа на родителя таблица.

Источник

Ответы (0)