#flask #flask-sqlalchemy
Вопрос:
sqlalchemy.orm.exc.DetachedInstanceError: Parent instance <Draft at 0x7f39bec37828> is not bound to a Session;
lazy load operation of attribute 'childProccess' cannot proceed (Background on this error at: http://sqlalche.me/e/13/bhk3)
У меня есть такая модель, как черновик, и она имеет отношение к:
childProccess = relationship(
childProccess,
primaryjoin=and_(
childProccess.draft_id == id,
),
)
Когда я пытаюсь запросить это, я получаю эту ошибку, которую я опубликовал
Редактировать
моя логика базы данных настроена примерно так
ENGINE = None
def get_engine():
global ENGINE
if ENGINE is None:
config_name = os.getenv("EXEC_ENVIRONMENT") or "dev"
configurations = config_by_name[config_name]
ENGINE = create_engine(
configurations.SQLALCHEMY_DATABASE_URI,
poolclass=configurations.SQLALCHEMY_POOLCLASS,
)
return ENGINE
def get_session() -> sessionmaker():
session_maker = sessionmaker(bind=get_engine(), expire_on_commit=False)
session = scoped_session(session_maker)
return session()
Комментарии:
1. Не могли бы вы поделиться логикой настройки подключения к базе данных.
2. @MattSeymour вопрос обновлен, сэр
3.
Draft
Экземпляр не находится в сеансе. Откуда это берется? Он только что был создан?4. @snakecharmerb да, это так . 1-й я создаю черновик . затем некоторые данные добавляются в
childProccess
. и когда я запрашиваю черновик, я получаю эту ошибку5. Так что делать
session.add(my_draft_instance)
?