我正在尝试创建一个用于基于类的实例更新数据库中行的函数。
基本上,我想做这样的事情:
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创建这样的功能?
您不需要额外的更新过程...
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()