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

Python Odoo模块-调用另一个模型的方法,python,openerp,Python,Openerp,我正在尝试调用采购订单模型的wkf\u confirm\u order方法 在我的代码中,我使用以下行: po.wkf\u确认订单(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 "/u

我正在尝试调用采购订单模型的
wkf\u confirm\u order
方法

在我的代码中,我使用以下行:

po.wkf\u确认订单(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对象是使用以下命令创建的(目前为硬编码的值):


调用方法时不应将self作为参数。 您需要的唯一参数是cr、uid、id(在本例中为[po.id])和上下文(如果未提供,则为无)

self将被Odoo自动解析为该方法

此代码应适用于:

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

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

替换您的代码

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


在您的方法中,
po.wkf\u confirm\u order
是什么。。。??表示其为采购订单的对象。。如果是(
po=self.pool.get('purchase.order')
)。。。那么,为什么要在方法中传递
self
。。。删除它。。。而且很好……:)嗨,谢谢你的帮助。这确实是一份采购订单。不幸的是,您建议的更改给出了一个错误(TypeError:wkf_confirm_order()最多接受5个参数(给定8个参数))。我用[po.id]作为参数进行了尝试,并在wkf_confirm_order方法中设置了一个记录器,没有为ids设置任何值。有什么想法吗?
context
还剩下。。。试试奥德德拉的答案……嗨,谢谢你的帮助。不幸的是,这给出了一个错误(TypeError:wkf_confirm_order()最多接受5个参数(给定8个参数))。我用[po.id]作为参数进行了尝试,并在wkf_confirm_order方法中设置了一个记录器,没有为ids设置任何值。有什么想法吗?您可以尝试使用po.id作为参数,而不是op[po.id],如果这仍然不起作用,我们可能需要更多的代码作为示例
po.wkf_confirm_order( self, cr, uid, [po.id] )
po.wkf_confirm_order(cr, uid, [po.id], context=context)