请问我正在尝试使用onchange功能。 这是python:
def on_change_bill_id(self, cr, uid, ids, partner_id, account_id, invoice_mode, context=None):
print ('------------------------Facturation on change--------------------')
var = self.browse(cr, uid, ids, context)
print ('account = ' )
print account_id
print ('partner =' )
print partner_id
res = {'value':{
'invoice_line': self.get_inputs2(cr, uid, ids, partner_id, account_id, invoice_mode, context=context),
}
}
print ('-------------------Onchange-----------------------')
return res
我的xml:
<field name="date_end" on_change="on_change_bill_id(partner_id, account_id, invoice_mode)"/>
问题在于我只使用:
<field name="date_end" on_change="on_change_bill_id(partner_id, account_id)"/>
一切正常,当我添加invoice_mode时,我得到了: TypeError:on_change_bill_id()至少需要7个参数(给定6个) 请帮我理解。 非常感谢提前
答案 0 :(得分:0)
参数问题。我们需要根据.xml侧传递传递值/变量。如果我们传递两个变量而不是.py那么我们必须只有两个变量。
例如,如果我们使用此
<field name="date_end" on_change="on_change_bill_id(partner_id, account_id, invoice_mode)"/>
比.py方必须捕获3变量。
def on_change_bill_id(self, cr, uid, ids, partner_id, account_id, invoice_mode, context=None):
#here is your code logic
如果更改xml端并传递两个变量,则必须在.py端捕获相同的内容。
例如
<field name="date_end" on_change="on_change_bill_id(partner_id, account_id)"/>
比.py方法看起来像
def on_change_bill_id(self, cr, uid, ids, partner_id, account_id, context=None):
#here is your code logic
答案 1 :(得分:0)
您应该尝试更新此行
<field name="date_end" on_change="on_change_bill_id(partner_id, account_id, invoice_mode, context)"/>