Odoo 8 方法解析顺序
Odoo 8 method resolution order
我对理解 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,后者又调用 original。我现在怎么能只调用原件(可以说我不想在某些情况下打印“1”)?
干杯,非常感谢所有帮助
Odoo 设置层次结构,然后应用正常的 Python 规则。
如果您想从模块 2 调用原始方法,您可以从原始模块导入特定的 class,小心地将 self
传递给它,因为您正在调用来自 class 的方法,不是实例:
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"`
我对理解 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,后者又调用 original。我现在怎么能只调用原件(可以说我不想在某些情况下打印“1”)?
干杯,非常感谢所有帮助
Odoo 设置层次结构,然后应用正常的 Python 规则。
如果您想从模块 2 调用原始方法,您可以从原始模块导入特定的 class,小心地将 self
传递给它,因为您正在调用来自 class 的方法,不是实例:
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"`