Обновление экземпляра sqlalchemy orm в сеансе фляги - PullRequest
0 голосов
/ 08 октября 2019

В моем приложении-колбе я сохраняю экземпляр пользовательского объекта в сеансе

session["user"] = user #Where user is an object

Я обнаружил, что при обновлении объекта, сохраненного в сеансе, и фиксации изменения не отражаются вбазы данных.

Однако я обнаружил, что при непосредственном обновлении объекта базы данных изменения отражаются в базе данных, в то время как объект сеанса не изменяется.

Если я пытаюсь использовать метод, подобный

user.username = username
user.password = password
db.commit() #I called my database session 'db', probably not a good idea but not the point
session["user"] = user

выдает:

sqlalchemy.orm.exc.DetachedInstanceError: Экземпляр не привязан к сеансу;Операция обновления атрибута не может быть продолжена

Что может быть возможным решением для правильного обновления базы данных и отражения изменений в сеансе фляги? Заранее спасибо.

1 Ответ

0 голосов
/ 08 октября 2019

Попробуйте установить {'expire_on_commit': False} как,

db = SQLAlchemy(app, session_options={

    'expire_on_commit': False

})
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...