Openerp create()方法返回新的记录集标识但不更新数据库

问题描述:

我正在OpenERP 7中开发一个web服务,它使用POST方法在res_partner表上创建一个新的合作伙伴。我的问题是create()方法返回给我新的对象ID,但数据库不更新。Openerp create()方法返回新的记录集标识但不更新数据库

这里是我的代码:

@openerpweb.httprequest 
def add_partner(self, req, db, user, password, name, type, street, city, zip, phone, email, function): 
    uid = req.session.authenticate(db, user, password) 
    osv_pool = pooler.get_pool(db) 
    cr = pooler.get_db(db).cursor() 

    partner_pool = osv_pool.get('res.partner') 
    partner_dict = { 
     'name': name, 
     'type': type, 
     'street': street, 
     'city': city, 
     'zip': zip, 
     'phone': phone, 
     'email': email, 
     'function': function 
    } 

    result = partner_pool.create(cr, uid, partner_dict) 
    cr.close() 
    return str(result) 

该方法不给我任何错误,并请求返回一个200码,用新的ID。我找不到为什么数据库没有在这个创建方法中更新

+0

它返回一个browse_record(res.partner,9840) –

+0

数据库上的最后一个条目id是9832,每当我尝试添加一个新的伙伴时,ID都会增加,但没有条目被添加到数据库 –

+0

由于我理解,记录已创建,并且您获得了新记录的ID。但表中不存在新记录。这样对吗? –

我发现了这个问题。我需要在光标对象上提交更改,因此我使用了cr.commit()并成功将条目添加到数据库中。

+0

谢谢。祝你好运 ;) –