在Odoo 7中调用ORM方法哪种方式更好?

时间:2014-10-22 07:10:16

标签: orm openerp-7 odoo

让我们假设您在代码中有一个模型对象。account.invoice'在您想要更新合作伙伴的方法中。我注意到你有两种方式来打电话给'#39;写'模型方法' res.partner'。你可以这样做:

invoice.partner_id.write({'name': 'Mister Test'})

OR

partner_obj = self.pool.get('res.partner')
partner_obj.write(cr, uid, invoice.partner_id.id, {'name': 'Mister Test'})

我总是使用第二种方式,因为它总是在文档中描述。但是,我发现第一种方式也有效,而且更短。这样做可以吗?

1 个答案:

答案 0 :(得分:0)

当对象是浏览记录时,我直接写入浏览记录object.write({' field_name':value})

invoice.partner_id.write({'name': 'Mister Test'})

此行给出错误,因为partner_id是一个many2one字段,因此它存储整数。所以你不能用它。

为此,您必须浏览该partner_id,而不是您可以在合作伙伴对象上书写。

第二点,如果你想在发票对象中写一些东西而不是你可以使用它,例如invoice.write({' field_name':value}),这将有效。

希望这是有道理的。