繁体   English   中英

SQLAlchemy session.add()不更新

[英]SQLAlchemy session.add() doesn't update

def update_user(user):
session.close()

get_user = session.query(User).filter(User.uniq_id == user.uniq_id).first()
print(get_user.state)  # 0
get_user.__dict__.update(user.__dict__)
print(get_user.state)  # 2

try:
    session.add(get_user)
    session.commit()
    return True, "complete"
except Exception as exc:
    session.rollback()
    exc_type, exc_obj, exc_tb = sys.exc_info()
    file_name = os.path.split(exc_tb.tb_frame.f_code.co_filename)[1]
    print(str(exc_type) + str(file_name) + str(exc_tb.tb_lineno) + "\n" + str(exc))
    return False, str(str(exc_type) + str(file_name) + str(exc_tb.tb_lineno) + "\n" + str(exc))
pass

在数据库中的session.add(get_user)和session.commit()值不更新之后,该函数使用表的单元格获取一个类(我需要使用另一个类来使用用户数据)

可能是get_user.__dict__.update(user.__dict__)

但我没有其他解决方案

如果我使用session.add(User(**user.__dict__)) ,我得到一个错误: (psycopg2.IntegrityError) duplicate key value violates unique constraint "users_pkey"

session.query(User).filter(User.uniq_id == user.uniq_id).update(user.__dict__)

我需要使用session.query更新

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM