gpt4 book ai didi

flask - 属性错误 : Neither 'InstrumentedAttribute' object nor 'Comparator' object associated with

转载 作者:行者123 更新时间:2023-12-03 17:01:03 30 4
gpt4 key购买 nike

我有一个表定义为

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”对象和“比较器”对象都没有属性“名称”

最佳答案

您是否尝试在执行查询时明确指定联接?

例如:

db.session.query(Results.team_id, Results.event_id, Team.name).join(Team).all()

我假设在返回 > 6000 个条目的情况下,您将获得笛卡尔结果。

关于flask - 属性错误 : Neither 'InstrumentedAttribute' object nor 'Comparator' object associated with,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39193039/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com