【发布时间】:2013-02-20 16:32:48
【问题描述】:
我在这里使用 SQLAlchemy,试图创建几个表并将它们链接起来,但在实现时遇到了问题。
class Team(Base):
__tablename__ = "teams"
id = Column(Integer, primary_key=True)
espn_team_id = Column(Integer, unique=True, nullable=False)
games = relationship("Game", order_by="Game.date")
def __init__(self, name):
self.name = name
self.espn_team_id = espn_team_id
self.games = games
class Game(Base):
__tablename__ = "games"
id = Column(Integer, primary_key=True)
espn_game_id=Column(Integer, unique=True, nullable=False)
date = Column(Date)
h_espn_id = Column(Integer, ForeignKey('teams.espn_team_id'))
a_espn_id = Column(Integer, ForeignKey('teams.espn_team_id'))
我将它放在一个文件中,用于创建表格。然后在另一个文件中,我使用 insert() 函数将值放入两个表中。我想如果我有一个 espn_team_id 360 的团队,然后我将多个游戏放入游戏表中,其中 h_espn_id=360 或 a_espn_id=360,我应该能够做到:
a = Table("teams", metadata, autoload=True)
a = session.query(a).filter(a.c.espn_team_id==360).first().games
它应该给我一个 ID 为 360 的团队玩过的所有游戏的列表。但是我得到了这个错误
AttributeError: 'NamedTuple' 对象没有属性 'games'
我在这里对 SQLAlchemy 或关系数据库有什么误解?
【问题讨论】:
标签: python database sqlalchemy relationship relational