【问题标题】:Onchange Functon in odoo: TypeError: on_change_bill_id() takes at least 7 arguments (6 given)odoo 中的 Onchange 函数:TypeError:on_change_bill_id() 至少需要 7 个参数(给定 6 个)
【发布时间】:2015-07-09 21:57:21
【问题描述】:

请我尝试使用 onchange 函数。 这是蟒蛇:

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 个) 请帮我理解。 提前非常感谢

【问题讨论】:

  • 您使用的是哪种型号?

标签: odoo


【解决方案1】:

参数问题。我们需要基于 .xml 侧传来传递值/变量。如果我们传递两个变量而不是 .py 端,我们必须只有两个变量。

例如,如果我们使用这个

<field name="date_end" on_change="on_change_bill_id(partner_id, account_id, invoice_mode)"/>

.py 方必须是 catch 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

【讨论】:

  • 非常感谢您的回答,但是先生,这就是我所做的,我得到了错误:TypeError:on_change_bill_id() 需要至少 7 个参数(给定 6 个)
  • 不,如果你正确升级你的模块,它不会再给你错误了。
  • 我已经多次升级我的模块,但没有任何反应。我收到此错误
  • 如果我无法升级模块怎么办。我多次按下升级,我也遇到了同样的错误。请问谁能帮忙
  • 您需要先停止服务器并重新启动它,然后才需要升级您的模块。请检查两次您的插件路径,并确保您更改了正确的文件。
【解决方案2】:

你应该尝试更新这一行,

<field name="date_end" on_change="on_change_bill_id(partner_id, account_id, invoice_mode, context)"/>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-08-12
    • 1970-01-01
    • 2011-12-25
    • 2018-07-17
    • 2023-03-23
    • 1970-01-01
    相关资源
    最近更新 更多