【发布时间】:2016-12-15 16:44:33
【问题描述】:
每个League 有多个赛季,每个Season 有多个球队,每个Team 表有一个goals_for 列。
假设我想计算一个联赛中的所有goals_for所有球队,跨越所有个赛季。但我什至无法在赛季内访问球队。
以下返回一个 League 类型的项目:
get_teams_for_leagues = League.query.join(League.seasons).join(Season.teams).all()
print(get_teams_for_leagues)
如何从League 访问teams?
class League(db.Model):
id = db.Column(db.Integer, primary_key=True)
full_name = db.Column(db.String, nullable=False)
# One side of many to one with Season
seasons = relationship("Season", back_populates="league", lazy='joined')
def __repr__(self):
return '<League %r>' % (self.full_name)
class Season(db.Model):
id = db.Column(db.Integer, primary_key=True)
season_string_form = db.Column(db.String, nullable=False)
# Many side of many to one wih Season
league_id = db.Column(db.Integer, ForeignKey('league.id'))
league = relationship("League", back_populates="seasons")
# One side of many to one with Team
teams = relationship("Team", back_populates="season")
def __repr__(self):
return '<Season %r>' % (self.id)
class Team(db.Model):
id = db.Column(db.Integer, primary_key=True)
name = db.Column(db.String, nullable=False)
goals_for = db.Column(db.Integer, nullable=False)
# Many side of many to one with Season
season_id = db.Column(db.Integer, ForeignKey('season.id'))
season = relationship("Season", back_populates="teams")
def __repr__(self):
return '<Team %r>' % (self.name)
【问题讨论】:
-
你的模型是什么样的?请为其添加代码。
-
@MrLeeh 完成。谢谢。
标签: python sql flask sqlalchemy flask-sqlalchemy