如何从会计发票更新客户中的one2many

问题描述:

我已经创建了一个客户表单。所以,当我验证(按钮验证)发票时,我试图传递一些值。我尝试了很多方法并遵循odoo论坛,但是我很难做到这一点。使用下面的代码: 我one2many领域是 'res.partner' customer_status“:如何从会计发票更新客户中的one2many

@api.multi 

@api.model 

def invoice_validate(self): 

customer_obj=self.env['res.partner'] 

customer_id=customer_obj.search([('id','=',self.partner_id.id)]) 

customer_line=customer_obj.browse(customer_id) 

dd = {'policy_number': self.policy_no,} 

customer_stat_add = customer_obj.write([customer_line.id],{ 

'customer_status': [(0, 0, dd)] 

}) 

state_change = self.write({'state': 'open'}) 

return state_change, customer_stat_add 

它给我这个错误:

ValueError: "invoice_validate() takes exactly 2 arguments (1 given)" while evaluating 
u'invoice_validate()' 

感谢。

带有新API的按钮需要@api.multi,如果你想在一个对象上工作,你可以使用self.ensure_one();

@api.multi 
def foo(self): 
    self.ensure_one() 
    print self.my_field 

此外,您不需要浏览对象,因为您已经获得浏览对象w/new api。

请记住,如果该功能是一个odoo基础功能,您必须调用super()。method_name不会破坏任何内容;)