Odoo模块 - 调用另一个模型的方法

时间:2016-03-14 11:01:43

标签: python openerp

我正在尝试调用采购订单模型的wkf_confirm_order方法。

在我的代码中,我使用了这一行:

po.wkf_confirm_order( self, cr, uid, [po.id] )

我得到以下堆栈跟踪,并且不了解参数的问题。一些帮助将非常受欢迎。

File "/etc/odoo/addons/asn_import/asn_model.py", line 60, in do_import_file

po.wkf_confirm_order( self, cr, uid, [po.id] )

File "/usr/lib/python2.7/dist-packages/openerp/api.py", line 254, in wrapper

return new_api(self, *args, **kwargs)

File "/usr/lib/python2.7/dist-packages/openerp/api.py", line 580, in new_api

result = method(self._model, cr, uid, self.ids, *args, **old_kwargs)
TypeError: wkf_confirm_order takes at most 5 arguments (9 given)

po对象是使用以下命令创建的(暂时硬编码的值):

 po = self.env['purchase.order'].create(cr, uid, {'partner_id':name_asc[0],'location_id':12,'pricelist_id':2})

2 个答案:

答案 0 :(得分:0)

调用方法时,不应将

self作为参数给出。 你需要的唯一参数是cr,uid,id(在这种情况下是[po.id])和context(如果没有提供它将是None)

自我将被Odoo自动解析为方法

此代码应该有效:

po.wkf_confirm_order(cr, uid, [po.id] )

答案 1 :(得分:0)

确保po.id是采购订单记录ID。

替换您的代码

po.wkf_confirm_order( self, cr, uid, [po.id] )

po.wkf_confirm_order(cr, uid, [po.id], context=context)
相关问题