TypeError: on_change_month_wage() takes at most 6 arguments (7 given)
TypeError: on_change_month_wage() takes at most 6 arguments (7 given)
我正在开发一个适用于委内瑞拉法律的薪资模块,我正在创建一个函数来计算员工的日工资,结果很好,模块进行了计算,但是;当我想保存日志时出现此错误:
TypeError: on_change_month_wage() Takes at most six arguments (7 Given)
这是我的代码:
def on_change_month_wage(self, cr, uid, ids, month_wage, context=None):
res = {}
if month_wage > 0:
res['diary_wage'] = month_wage / 30
return {'value': res}
_columns = {
'month_wage':fields.float('Salario Mensual', digits=(16,2)),
'diary_wage':fields.function(on_change_month_wage, type = 'float', string = 'Salario Diario'),
}
和我的 xml 行:
<field name="month_wage" string="Salario Mensual" on_change="on_change_month_wage(month_wage)" />
<field name="diary_wage" string="Salario Diario" />
我应该怎么做才能解决这个错误?
不建议将 onchange 方法用作函数,因为 on_chnage 采用不同的参数,例如:
function:这个函数是 return float 因为它的定义是 type = 'float'
def cal_month_wage(self,cr,uid,ids,field_name,arg,context=None):
...
... #here your code logic
return float_value
'diary_wage':fields.function(cal_month_wage, type = 'float', string = 'Salario Diario')
onchange:Onchange return 字典(键:值)
def on_change_month_wage(self, cr, uid, ids, month_wage, context=None):
...
... #here your code logic
return dictionary
field name="month_wage" string="Salario Mensual" on_change="on_change_month_wage(month_wage)"
希望你在外观和功能上有所不同。之后你的问题就解决了。
我正在开发一个适用于委内瑞拉法律的薪资模块,我正在创建一个函数来计算员工的日工资,结果很好,模块进行了计算,但是;当我想保存日志时出现此错误:
TypeError: on_change_month_wage() Takes at most six arguments (7 Given)
这是我的代码:
def on_change_month_wage(self, cr, uid, ids, month_wage, context=None):
res = {}
if month_wage > 0:
res['diary_wage'] = month_wage / 30
return {'value': res}
_columns = {
'month_wage':fields.float('Salario Mensual', digits=(16,2)),
'diary_wage':fields.function(on_change_month_wage, type = 'float', string = 'Salario Diario'),
}
和我的 xml 行:
<field name="month_wage" string="Salario Mensual" on_change="on_change_month_wage(month_wage)" />
<field name="diary_wage" string="Salario Diario" />
我应该怎么做才能解决这个错误?
不建议将 onchange 方法用作函数,因为 on_chnage 采用不同的参数,例如:
function:这个函数是 return float 因为它的定义是 type = 'float'
def cal_month_wage(self,cr,uid,ids,field_name,arg,context=None):
...
... #here your code logic
return float_value
'diary_wage':fields.function(cal_month_wage, type = 'float', string = 'Salario Diario')
onchange:Onchange return 字典(键:值)
def on_change_month_wage(self, cr, uid, ids, month_wage, context=None):
...
... #here your code logic
return dictionary
field name="month_wage" string="Salario Mensual" on_change="on_change_month_wage(month_wage)"
希望你在外观和功能上有所不同。之后你的问题就解决了。