2014-10-22 87 views
0

假設您在代碼中有模型「account.invoice」的對象,並且在想要更新合作伙伴的方法中。我注意到你有兩種方式在模型'res.partner'上調用'write'方法。你既可以做:在Odoo 7中調用ORM方法哪種方式更好?

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'}) 

我總是使用第二種方式,因爲它是始終單證所描述的。但是,我發現第一種方式也在工作,並且更短。這樣做可以嗎?

回答

0

當對象是瀏覽紀錄,比我直接寫的瀏覽記錄object.write({「FIELD_NAME」:值})

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

這條線給錯誤,因爲PARTNER_ID是many2one字段,以便它的商店整數。所以你不能使用這個。

爲此,您必須瀏覽該partner_id,然後才能在夥伴對象上撰寫。

第二點,如果你想在發票對象中寫一些東西,比如你可以使用這個例如invoice.write({'field_name':value}),這將工作。

希望這是有道理的。