Python SQLAlchemy ORM:使用类的实例更新行

问题描述 投票:0回答:1

我正在尝试创建一个用于基于类的实例更新数据库中行的函数。

基本上,我想做这样的事情:

def update_table(self, result):
    session = self.Session()

    session.query(result.__class__).filter_by(id=result.id).update(result)

    session.commit()
    session.close_all()


user = db.Model.User(
  id = 1,
  name = "foo"
)

# Store user to db
db.save(user)

updated_user = db.Model.User(
    id = 1,
    user = "bar"
)

# Update the users name with id=1
update_table(updated_user)

问题是会话查询导致出现]

TypeError:“用户”对象不可迭代

但是在我看来,这应该以name =“ bar”的更新用户结尾。

是否可以使用SQLAlchemy ORM创建这样的功能?

python mysql flask sqlalchemy pymysql
1个回答
0
投票

您不需要额外的更新过程...

user = db.Model.User(
  id = 1,
  name = "foo"
)

# Store user to db
db.save(user)

new_user = session.query(User).filter(User.id==1).first()
new_user.name = "bar"
session.commit()
© www.soinside.com 2019 - 2024. All rights reserved.