SQLAlchemy - AmbiguousForeignKeysError, несмотря на использование аргумента foreignkeys = - PullRequest
0 голосов
/ 15 апреля 2019

Я создаю приложение, которое использует 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)

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...