web-dev-qa-db-ja.com

AttributeError:__ enter__usingステートメントSqlAlchemyセッション

私はこれを取得していますAttributeError: __enter__このようにsqlalchemyセッションを使おうとすると guide

私のコード:

Session = scoped_session(sessionmaker(autoflush=True, autocommit=False, bind=engine))

@contextmanager
def session_scope():
    session = Session()
    try:
        yield session
        session.commit()
    except:
        session.rollback()
        raise
    finally:
        session.close()

class SomeClass:

    def __init__(self):
        self.session_scope = session_scope

    def something_with_session(self):

        with self.session_scope as session: <-- error

私は何が間違っているのですか?私はpython 3.6を使用しています

6
w33zel

コンテキストを取得するには、関数を呼び出す必要があります

with self.session_scope() as session:
    ...
10
tdelaney