#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. Это было так! Спасибо за помощь!