gpt4 book ai didi

python - 添加列进行查询,返回 SQLAlchemy 中的映射类

转载 作者:行者123 更新时间:2023-11-30 23:24:13 25 4
gpt4 key购买 nike

这非常简单。这按预期工作:

>>> db.session.query(SomeModel).all()[0]
SomeModel(41330029-f21e-4022-aed5-e45e61ada399

但是如果我尝试添加另一列,我会得到一个元组:

>>> db.session.query(SomeModel, some_expression.label('foo')).all()[0]
(SomeModel(41330029-f21e-4022-aed5-e45e61ada399), None)

如何获得平坦的结果?也就是说,一个 SomeModel 内部有一个 foo 属性,而不是作为同级?

最佳答案

对于简单的表达式,我会使用 column_property添加到 SomeModel,在这种情况下,它将始终是其实例的属性。
或者,您可以查看Hybrid Attributes做同样的工作。

如果您只是偶尔需要它,那么只需在查询执行后将其设置为属性即可:

results = db.session.query(SomeModel, some_expression.label('foo')).all()
for mod, att in results:
mod.foo = att # or: setattr(mod, "foo", att)
results = [mod for mod, _attr in results]

关于python - 添加列进行查询,返回 SQLAlchemy 中的映射类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23553332/

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