【问题标题】:TypeError: on_change_month_wage() takes at most 6 arguments (7 given)TypeError: on_change_month_wage() 最多接受 6 个参数(给定 7 个)
【发布时间】:2015-01-19 14:14:24
【问题描述】:

我正在开发一个适用于委内瑞拉法律的工资单模块,并且我正在创建一个函数来查找员工的日工资,所有结果都很好,该模块进行了计算,但是;当我想保存日志时出现此错误:

TypeError: on_change_month_wage() 最多接受六个参数(7 个给定)

这是我的代码:

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" />

我应该怎么做才能解决这个错误?

【问题讨论】:

    标签: function onchange openerp-7


    【解决方案1】:

    不建议将 onchange 方法用作函数,因为 on_chnage 采用不同的参数,例如:

    函数:这个函数是返回浮点数,因为它的定义是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 返回字典(键:值)

    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)"
    

    希望您在 onchnage 和功能上有基本的不同。之后你的问题就解决了。

    【讨论】:

      猜你喜欢
      • 2019-01-20
      • 2019-09-12
      • 2016-02-03
      • 2018-12-23
      • 2017-06-30
      • 2021-11-22
      • 2013-01-13
      相关资源
      最近更新 更多