我在理解odoo中的继承时遇到问题。 请考虑以下模块1中的代码
`class pos_order(models.Model):
_inherit = 'pos.order'
def create_from_ui(self, cr, uid, orders, context=None):
super(models.Model, self).create_from_ui(cr, uid, orders, context=context)
print "1"`
和模块2中相同,只打印2.第一个模块1安装然后安装模块2.正如您所看到的那样,pos_order使用自定义create_from_ui函数进行扩展。如果现在调用create_from_ui,则调用module2 order,然后调用module1 order,而module1又调用original。我怎么才能现在只调用原件(假设我不想要" 1"在某些情况下打印)?
欢呼并非常感谢所有帮助
答案 0 :(得分:2)
Odoo设置层次结构,但适用普通的Python规则。
如果要从模块2调用原始方法,可以从原始模块中导入该特定类,小心地将self
传递给它,因为您正在从类中调用该方法,而不是实例:
from openerp.addons.point_of_sale.point_of_sale import pos_order as original_pos_order
class pos_order(models.Model):
_inherit = 'pos.order'
def create_from_ui(self, cr, uid, orders, context=None):
original_pos_order.create_from_ui(self, cr, uid, orders, context=context)
print "1"`