金字塔:如何将记录添加到数据库?

时间:2011-12-29 19:33:21

标签: python pyramid

我试图从命令行向数据库添加记录,但它不起作用(我的意思是没有记录添加到db并且没有引发错误)。

这是代码:

from myproject.models import DBSession, Model

session = DBSession()
md = Model(name='text')
session.add(md)

models.py中,DBSession()由scaffold自动定义。我只改变了模型结构。

我做错了什么?

谢谢!

1 个答案:

答案 0 :(得分:7)

可能您的会话已附加到事务管理器DBSession = .. extensions=[ZopeTransactionExtension()]),该事务管理器在使用控制台时无效。因此,您必须是交易经理并自己完成。

import transaction
transaction.commit()

代码末尾。请记住session.add只是将对象添加到会话中,但实际上并没有将命令刷新到数据库或提交它们。