Odoo继承和(缺乏)多态性

时间:2016-06-24 14:17:09

标签: inheritance openerp openerp-8

我想构建一个对象( 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'

0 个答案:

没有答案