models.py
class User(Base):
__tablename__ = 'users'
id = Column(Integer, primary_key = true, autoincrement=true)
...
views.py
entry = User()
with transaction.manager:
DBSession.add(entry)
DBSession.flush()
transaction.commit()
pdb.set_trace()
现在我跑
print user.id
我得到了
DetachedInstanceError: Instance <Userat 0x3ebc310> is not bound to a Session
如果我改变,如果从添加到合并它只是给我
none
答案 0 :(得分:2)
如果删除transaction
的手动摆弄,一切都会有效:
entry = User()
DBSession.add(entry)
DBSession.flush()
print entry.id
由于您使用的是Pyramid和ZopeTransactionExtension,最好避免手动处理事务并将其留给Pyramid - 如果您的代码引发异常,事务将在成功时提交并回滚。