Openerp 如何从会计发票更新one2many in客户

Openerp 如何从会计发票更新one2many in客户,openerp,odoo-8,Openerp,Odoo 8,我已经创建了一个one2many to customer表单。因此,当我验证(按钮验证)一张发票时,我试图在该发票中传递一些值。我已经尝试了很多方法并关注了奥多论坛,但我很难做到这一点。使用以下代码: 我的one2many字段是'res.partner'中的'customer_status': @api.multi @api.model def invoice_validate(self): customer_obj=self.env['res.partner'] customer_id

我已经创建了一个one2many to customer表单。因此,当我验证(按钮验证)一张发票时,我试图在该发票中传递一些值。我已经尝试了很多方法并关注了奥多论坛,但我很难做到这一点。使用以下代码: 我的one2many字段是'res.partner'中的'customer_status':

@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.sure_one()

另外,您不需要浏览对象,因为您已经获得了带有新api的浏览对象


请记住,如果该特性是基于odoo的特性,则必须调用super().method\u name以不破坏任何内容;)

带有新api的按钮需要
@api.multi
,如果您想处理单个对象,可以使用
self.sure_one()

另外,您不需要浏览对象,因为您已经获得了带有新api的浏览对象

请记住,如果该特性是基于odoo的特性,则必须调用super().method\u name以不破坏任何内容;)

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