SQLAlchemy — ошибка ambiguousforeignkeys, несмотря на использование аргумента ‘foreignkeys =’

#python #sqlalchemy

#python #sqlalchemy

Вопрос:

Я создаю приложение, которое использует SQLAlchemy, но продолжаю сталкиваться со следующей ошибкой:

 AmbiguousForeignKeysError: Could not determine join condition between 
parent/child tables on relationship Team.home_matches
 - there are multiple foreign key paths linking the tables. 
Specify the 'foreign_keys' argument, providing a list of those
 columns which should be counted as containing a foreign key reference
 to the parent table.
 

Я применил решение, указанное в документации (установка foreign_keys атрибута), но это не решило проблему, и ошибка продолжает возвращаться.

Ошибка возникает между этими двумя моделями: Идея заключается в том, что база данных будет содержать таблицу с результатами разных футбольных матчей и таблицу, содержащую разные команды.

 class Team(Base):
    __tablename__ = 'teams'

    id = Column(Integer, primary_key=True)
    name = Column(String(length=250), unique=True)
    home_matches = relationship("Match", back_populates='home')
    away_matches = relationship("Match", back_populates='away')

    def __repr__(self) -> str:
        return self.name
 
 class Match(Base):
    __tablename__ = 'matches'

    id = Column(Integer, primary_key=True)
    date = Column(Date, nullable=False)
    home_id = Column(Integer, ForeignKey('teams.id'))
    home = relationship(
        "Team", back_populates='home_matches', foreign_keys=[home_id]
    )
    away_id = Column(Integer, ForeignKey('teams.id'))
    away = relationship(
        "Team", back_populates='away_matches', foreign_keys=[away_id]
    )
    home_score = Column(Integer, nullable=False)
    away_score = Column(Integer, nullable=False)
 

Кто-нибудь знает, что я делаю не так?

Комментарии:

1. Отношения в Team не используются foreign_keys= .

2. Это было так! Спасибо за помощь!