- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我必须使用 SQLalchemy Core 表达式来获取对象,因为 ORM 不能进行“更新和返回”。 (ORM 中的更新没有返回
)
from sqlalchemy import update
class User(ORMBase):
...
# pure sql expression, the object returned is not ORM object.
# the object is a RowProxy.
object = update(User) \
.values({'name': 'Wayne'}) \
.where(User.id == subquery.as_scalar()) \
.returning() \
.fetchone()
什么时候
db_session.add(object)
它报告 UnmappedInstanceError: Class 'sqlalchemy.engine.result.RowProxy' is not mapped
。
如何将 SQL 表达式中的 RowProxy
对象放入 ORM 的标识映射中?
最佳答案
我不确定是否有直接的方法来执行您所描述的操作,这实际上是构建一个直接映射到数据库条目但不通过 ORM 执行查询的 ORM 对象。
我的直觉是,天真的方法(只需使用数据库中的值构建 ORM 对象)只会创建具有相同值的另一行(或由于唯一性约束而失败)。
更标准的方法是通过 ORM 首先查询行,然后从该 ORM 对象更新数据库。
user = User.query.filter(User.user_attribute == 'foo').one()
user.some_value = 'bar'
session.add(user)
session.commit()
不过,我不确定您是否有某些限制阻止您使用该模式。该文档通过类似的方式工作 examples
关于python - 将 SQLAlchemy ORM 与来自 sql 核心表达式的对象连接起来?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41517779/
我正在尝试执行 vagrant up 但一直遇到此错误: ==> default: IOError: [Errno 13] Permission denied: '/usr/local/lib/pyt
我在容器 div 中有一系列动态创建的不同高度的 div。 Varying text... Varying text... Varying text... Varying text.
通过 cygwin 运行 vagrant up 时遇到以下错误。 stderr: /bin/bash: /home/vagrant/.ansible/tmp/ansible-tmp-14872260
今天要向小伙伴们介绍的是一个能够快速地把数据制作成可视化、交互页面的 Python 框架:Streamlit,分分钟让你的数据动起来! 犹记得我在做机器学习和数据分析方面的毕设时,
我是 vagrant 的新手,正在尝试将第二个磁盘添加到我正在用 vagrant 制作的虚拟机中。 我想出了如何在第一次启动虚拟机时连接磁盘,但是当我关闭机器时 然后再次备份(使用 'vagrant
我是一名优秀的程序员,十分优秀!