OpenERP:多模块覆盖 onchange 功能

OpenERP : Multiple module overriding onchange function

我需要重写 sale.order 中存在的 onchange_partner_id 函数,但我正在处理一个已经有一个重写此函数的模块的系统。 我尝试用类似的代码编写自己的 onchange_partner_id :

def onchange_partner_id(self, cr, uid, ids, part):
    res = super(sale_order, self).onchange_partner_id(cr, uid, ids, part)
    // doing some stuff and adding it to res['value']['myfield']
return res

但是我的函数没有被 OpenERP 读取。 所以我的问题是,是否可以让多个函数覆盖同一个函数,如果可能的话我该如何进行? 提前致谢

是的,您可以重写此方法,为此您需要定义新的 class,其中继承 sale.order 并定义您的方法。

你的方法肯定会被调用。

class sale_order(osv.osv):
    _inherit = 'sale.order'

    def onchange_partner_id(self, cr, uid, ids, part, context=None):
        res = super(sale_order, self).onchange_partner_id(cr, uid, ids, part,context=context)
        // doing some stuff and adding it to res['value']['myfield']
        return res