如何更新SqlAlchemy中的所有对象列?

时间:2015-08-09 12:56:59

标签: python mysql sqlalchemy

我有一个用户表(超过15列),有时我需要完全更新所有用户属性。对于xample,我想要替换

user_in_db = session.query(Users).filter_by(user_twitter_iduser.user_twitter_id).first() 与其他一些对象。

我找到了以下解决方案:

session.query(User).filter_by(id=123).update({"name": user.name})

但是我认为编写所有15个属性都容易出错,并且应该存在一个更简单的解决方案。

1 个答案:

答案 0 :(得分:4)

你可以写:

session.query(User).filter_by(id=123).update({column: getattr(user, column) for column in User.__table__.columns.keys()})

这将遍历User模型(表)的列,并且它将动态创建包含必要键和值的字典。

相关问题