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

时间:2016-01-15 19:34:44

标签: python python-2.7 openerp openerp-7

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

这是我的代码:

@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)

该方法没有给我任何错误,请求返回带有新ID的200代码。我无法在此创建方法

中找到未更新数据库的原因

1 个答案:

答案 0 :(得分:2)

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