【发布时间】:2017-01-04 16:55:07
【问题描述】:
我有一个表定义为
class Results(db.Model):
__tablename__ = 'results'
event_id = db.Column(db.Integer, db.ForeignKey(Events.id), primary_key=True)
event = db.relationship('Events', foreign_keys='Results.event_id')
team_id = db.Column(db.Integer, db.ForeignKey(Teams.id), primary_key=True)
team = db.relationship('Teams', foreign_keys='Results.team_id')
position = db.Column(db.Integer, default=0)
rr_position = db.Column(db.Integer, default=0)
score = db.Column(db.Float, default=0)
和
class Teams(db.Model):
__tablename__ = 'teams'
id = db.Column(db.Integer, primary_key=True)
name = db.Column(db.String(64), nullable=False)
country = db.Column(db.String(64), nullable=False)
当我运行以下内容时
r = Results.query.all()
print(len(r))
我得到 138 行。
如果我跑步
r = db.session.query(Teams.name
, Results.team_id
, Results.event_id).all()
print(len(r))
或
r = Results.query.add_column(Teams.name).all()
print(len(r))
然后我得到 6072 行。使用此查询,我期望有 138 行和一个团队名称。
但如果我尝试
r == db.session.query(Results.team.name
, Results.team_id
, Results.event_id).all()
我收到以下错误
AttributeError:与 Results.team 关联的“InstrumentedAttribute”对象和“Comparator”对象都没有属性“name”
【问题讨论】:
标签: flask sqlalchemy foreign-keys