美文网首页
解决 SQLAlchemy 提示 Instance is not

解决 SQLAlchemy 提示 Instance is not

作者: ___大鱼___ | 来源:发表于2018-12-04 19:42 被阅读48次

    在使用 SQLAlchemy 的过程中,有时会出现下列错误:

    sqlalchemy.orm.exc.DetachedInstanceError: Instance <EntityMedicamentVariety at 0x2675fef6978> is not bound to a Session; attribute refresh operation cannot proceed (Ba
    ckground on this error at: http://sqlalche.me/e/bhk3)
    

    出现以上错误的原因是因为:session 已经被提交,导致操作的 model 对象已经不在当前 session 中了。 解决的办法就是:把对象重新加入到当前 session 中:

    def foo(user):
        # do something...
        session.commit()
    
    user = session.query(User).filter_by(name='Jim').first()
    foo(user)
    print user in session  # False
    print user.name  # DetachedInstanceError: Instance <User at 0x2b45b53509d0> is not bound to a Session
    
    user = session.merge(user)   # 加上这句话即可
    print user in session  # True
    print user.name  # Jim
    ---------------------------------------------------------------
    session.refresh(user)
    print user.name  # Eric
    

    相关文章

      网友评论

          本文标题:解决 SQLAlchemy 提示 Instance is not

          本文链接:https://www.haomeiwen.com/subject/orbvcqtx.html