我有一个用户表(超过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个属性都容易出错,并且应该存在一个更简单的解决方案。
答案 0 :(得分:4)
你可以写:
session.query(User).filter_by(id=123).update({column: getattr(user, column) for column in User.__table__.columns.keys()})
这将遍历User
模型(表)的列,并且它将动态创建包含必要键和值的字典。