Почему запись не вставлена? Идентификатор возвращается, но когда я проверяю базу данных, нет новой записи.Вставка не работает для сеанса базы данных SQLAlchemy
От models.py
from zope.sqlalchemy import ZopeTransactionExtension
DBSession = scoped_session(sessionmaker(extension=ZopeTransactionExtension()))
И views.py
DBSession.execute(text('INSERT INTO (a,b,c) VALUES (\'a\',\'b\',\'c\') RETURNING id'), params=dict(a=a,b=b,c=c))
Я попытался совершить с transaction.commit()
, который не получает сообщение об ошибке, но не вставить запись. result.fetchone()[0]
получает идентификатор.
И DBSession.commit
который получает
assert self.transaction_manager.get().status == ZopeStatus.COMMITTING, "Transaction must be committed using the transaction manager"
Хмм с использованием mark_changed (DBSession) 'scoped_session' есть ошибка: объект не имеет атрибута 'TWOPHASE' –
Я рассматриваю только с помощью AutoCommit –
Попробуйте делать что-то вроде этого: 'сессии = DBSession()' ' session.execute (...)' 'mark_changed (session)' Потому что вам нужно использовать ваш фактический сеанс, а не создатель сеанса - я изменяю свой первоначальный ответ, чтобы показать, как он должен выглядеть. – Ergo