Inheritance Odoo遗传和(缺乏)多态性
我想构造一个对象(objA),它在其存在过程中具有许多不同类型的状态(objB)。然而,每种不同类型的状态都是其自身的野兽,这取决于其类型(type1,type2,type3,…) 显然,Odoo/OpenERP不支持多态性,因此引入中间状态objB旨在掩盖不同类型的状态,希望objA可能有一个包含其“状态历史”的One2Many字段 现在,我被Odoo文档描述为传统vs委托的继承概念所困扰,不确定哪一个是传统vs委托。此外,如果这种类型的操作是可能的,那么所有属性是否都可以在objA的表单视图中实现 我唯一的猜测如下:Inheritance Odoo遗传和(缺乏)多态性,inheritance,openerp,openerp-8,Inheritance,Openerp,Openerp 8,我想构造一个对象(objA),它在其存在过程中具有许多不同类型的状态(objB)。然而,每种不同类型的状态都是其自身的野兽,这取决于其类型(type1,type2,type3,…) 显然,Odoo/OpenERP不支持多态性,因此引入中间状态objB旨在掩盖不同类型的状态,希望objA可能有一个包含其“状态历史”的One2Many字段 现在,我被Odoo文档描述为传统vs委托的继承概念所困扰,不确定哪一个是传统vs委托。此外,如果这种类型的操作是可能的,那么所有属性是否都可以在objA的表单视图
class ObjA(models.Model):
_name = 'obja'
generic_attribute = fields.Char(string="Generic Attribute", default="Anything")
status_history = fields.One2many('obja.status', 'obja.id', string="History")
class Status(models.Model):
_name = 'obja.status'
generic_status_attribute = fields.Date(string="Status start")
_inherits = ['status.type1', 'status.type2', 'status.type3']
class Type1(models.Model):
_name = 'status.type1'
class Type2(models.Model):
_name = 'status.type3'
class Type3(models.Model):
_name = 'status.type3'
我认为在odoo本身中可能有一个例子,它实现了您的需求
ir.ui.menu
可以采用不同类型(模型)的ir.actions,它们继承了ir.actions.actions
。您可以在base/ir中找到这些类。