我试图从命令行向数据库添加记录,但它不起作用(我的意思是没有记录添加到db并且没有引发错误)。
这是代码:
from myproject.models import DBSession, Model
session = DBSession()
md = Model(name='text')
session.add(md)
在models.py
中,DBSession()由scaffold自动定义。我只改变了模型结构。
我做错了什么?
谢谢!
答案 0 :(得分:7)
可能您的会话已附加到事务管理器DBSession = .. extensions=[ZopeTransactionExtension()])
,该事务管理器在使用控制台时无效。因此,您必须是交易经理并自己完成。
import transaction
transaction.commit()
代码末尾。请记住session.add
只是将对象添加到会话中,但实际上并没有将命令刷新到数据库或提交它们。