2024-04-28 22:09:46 发布
网友
我在SQLAlchemy中做了这样一个连接:
items = Item.query\ .outerjoin((ItemInfo, ItemInfo.item_id==Item.id)) items.add_columns(ItemInfo.count)
这将导致SQLAlchemy返回元组:
我更希望“count”值作为项的属性返回,也就是说,我想:
>>> items.first().count 2
支持吗?在
实际上,”第一项().count“会起作用,因为你得到的元组是一个命名元组…但是你猜你不想看到第一项().项目.foo. 在
第二种方法是通过构造所需结果的函数运行query()的结果:
def process(q): for item, count in q: item.count = count yield count
编辑:这里是一个通用版本:
第三,修改Item类来支持这个函数。您可以使用column_property()将选择子查询应用于您的类:http://www.sqlalchemy.org/docs/orm/mapper_config.html#sql-expressions-as-mapped-attributes。如果希望属性的加载是有条件的,可以使用deferred:http://www.sqlalchemy.org/docs/orm/mapper_config.html#deferred-column-loading。在
column_property()
实际上,”第一项().count“会起作用,因为你得到的元组是一个命名元组…但是你猜你不想看到第一项().项目.foo. 在
第二种方法是通过构造所需结果的函数运行query()的结果:
编辑:这里是一个通用版本:
^{pr2}$第三,修改Item类来支持这个函数。您可以使用
column_property()
将选择子查询应用于您的类:http://www.sqlalchemy.org/docs/orm/mapper_config.html#sql-expressions-as-mapped-attributes。如果希望属性的加载是有条件的,可以使用deferred:http://www.sqlalchemy.org/docs/orm/mapper_config.html#deferred-column-loading。在相关问题 更多 >
编程相关推荐