SQLAlchemy: обращаться к связанным объектам после закрытия сессии
У меня есть много моделей связанных сами с собой и друг с другом, и эти связи нужно использовать в логике сервера. Код довольно сложный, поэтому нельзя сохранять сессии после выполнения запроса. Вместо этого я пытаюсь пред загрузить все объекты:
def db_get_structure():
with Session(my_engine) as session:
deps = {x.id: x for x in session.query(Department).all()}
...
return (deps, ...)
def some_logic(id):
struct = db_get_structure()
return some_other_logic(struct.deps[id].owner)
Однако я получаю следующую ошибку несмотря на то, что все объекты уже подгружены:
sqlalchemy.orm.exc.DetachedInstanceError: Parent instance <Department at 0x10476e780> is not bound to a Session; lazy load operation of attribute 'owner' cannot proceed
Возможно ли как-то связать загруженные объекты друг с другом так, чтобы использовать их связи после закрытия сессии?