2016-03-01 48 views
1

我已經創建了一個客戶表單。所以,當我驗證(按鈕驗證)發票時,我試圖傳遞一些值。我嘗試了很多方法並遵循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()' 

感謝。

回答

0

帶有新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不會破壞任何內容;)

相關問題