在ODOO中可以继承扩展类吗?
在 addons/delivery/sale.py
文件中,我们有一个类,它在第39行继承了 sale.order
类:
class sale_order(osv.Model):
_inherit = 'sale.order'
这是一个扩展类(没有 _name
)
有没有办法从这个类继承,并重写它的某个方法呢?
1 个回答
2
@Paulo Farinha Silva:你给的代码片段已经是扩展类的一种方式了,你可以重写(over-ride)或者重载(overload)任何方法,并且可以选择调用父类的方法,也可以不调用。下面是一个示例代码片段:
#Original definition v8 addons/delivery/sale.py line no 36 :
class sale_order(osv.Model):
_name = "sale.order"
#Example method on sale order calss line #601
def action_wait(self, cr, uid, ids, context=None):
这是继承的,前面提到的方法已经被重写了,代码看起来是这样的:
#Original definition v8 /addons/sale_stock/sale_stock.py line no 30 :
class sale_order(osv.Model):
_name = "sale.order"
#this is method originally defined in parent class and being over-ride here,
def action_wait(self, cr, uid, ids, context=None):
#Your Code goes here
res = super(sale_order, self).action_wait(cr, uid, ids, context=context)
#Your Code goes here
return res
通过这种方式,你可以重写方法,并且可以同时操作所有模型的方法和字段。
祝好