Избегайте истечения сеанса после транзакции .mit в pira - PullRequest
0 голосов
/ 07 июля 2011

Кажется tansaction.commit() - единственный способ сделать коммит в пирамиде paster pshell. Я понимаю, что это хорошо для обслуживания веб-страниц, но в оболочке после этого при следующем вызове SQLAlchemy MyModel.my_attribute я получаю:

DetachedInstanceError: Parent instance <MyModel at 0x9394d0c> is not bound to
a Session; lazy load operation of attribute 'my_attribute' cannot proceed

Как мне этого избежать?

Ответы [ 2 ]

1 голос
/ 09 октября 2013

Пропуск keep_session=True в ZopeTransactionExtension()

Источник: https://pypi.python.org/pypi/zope.sqlalchemy#long-lasting-session-scopes

0 голосов
/ 07 июля 2011

Я полагаю, что это связано с параметром expire_on_commit для сеанса SQLA. После выполнения фиксации объекты, которые вы использовали со старой транзакцией, должны быть обновлены или объединены в новый сеанс. Дело в том, что это на самом деле не связано с самим модулем transaction.

...