Я хочу отделить экземпляр класса от моего сеанса, но он все равно должен быть доступен для чтения (без испускания запроса). Я просматривал документацию в течение нескольких дней, но каждый подход, который я пытаюсь, приводит к сообщению
DetachedInstanceError: Instance <MyModel at 0x36bb190> is not bound to a Session;
attribute refresh operation cannot proceed
Я работаю с менеджером транзакций zope.sqlalchemy
в Pyramid. Я хочу, чтобы мой объект был доступен после, транзакция была совершена. Мне нужно только его прочитать "кэшированное" значение, то есть те, которые были в нем до совершения транзакции.
Единственный способ, которым я мог понять, - это обернуть класс (или сами атрибуты), а затем отслеживать изменения вручную (я мог бы это сделать, но это действительно уродливо и вовсе не pythonic).
Итак, есть ли способ предотвратить попытку SQLAlchemy обновить эти значения?
В качестве резервной копии я даже был бы открыт только для возврата None
, если вышеприведенная ошибка не будет выбрана после совершения транзакции