SQLALchemy - заполнить отношения строками из 2 полей другой таблицы - PullRequest
0 голосов
/ 06 октября 2019

У меня есть следующие таблицы:

class Match(Base):
    __tablename__ = 'match'

    match_id = Column(Integer, primary_key=True)
    home_team_id = Column(Integer, ForeignKey('team.team_id'))
    away_team_id = Column(Integer, ForeignKey('team.team_id'))

    home_team = relationship('Team', foreign_keys=[home_team_id])
    away_team = relationship('Team', foreign_keys=[away_team_id])

class Team(Base):
    __tablename__ = 'team'

    team_id = Column(Integer, primary_key=True)
    name = Column(String)

    matches = relationship(...)

Как определить отношение в Team, чтобы team.matches извлекал каждую строку из таблицы match, если team_id команды соответствуетили home_team_id или away_team_id?

Спасибо.

1 Ответ

0 голосов
/ 06 октября 2019

Хорошо, я понял это. Отношения должны были быть:

matches = relationship(
    'Match', 
    primaryjoin='or_(
        Team.team_id == Match.home_team_id, Team.team_id == Match.away_team_id
    )'
)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...