我想构建一个对象( objA ),它在其存在过程中会有许多不同类型的状态( objB >)。但是,每种不同类型的状态都是它自己的野兽,根据其类型( type1 , type2 , type3 ,...)。
显然Odoo / OpenERP不支持多态,因此引入中间状态 objB 旨在隐藏不同类型的状态,希望 objA 可能拥有One2Many由“状态历史”组成的字段。
现在,我坚持使用Odoo文档描述为传统 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'