Openerp 多至';组成';两个一个

Openerp 多至';组成';两个一个,openerp,odoo-8,Openerp,Odoo 8,假设我有三个对象A,B,C,它们之间的关系是一个A对多个B和一个A对多个C。这自然意味着存在多B对多C关系,但计算机显然无法识别这一含义 问题是, (i) 如何定义这么多人,使其尊重通过现有关系给出的链接 (ii)对于每个对象B和C,是否有任何特殊的方式在表单视图中显示上述关系 (iii)这是否可能是许多关系的固有含义,我应该浏览文档中大量不存在的示例?您应该能够定义相关的字段。许多使用从B到C的关系。见: 例如: Model_A: b_ids = fields.One2many(com

假设我有三个对象A,B,C,它们之间的关系是一个A对多个B和一个A对多个C。这自然意味着存在多B对多C关系,但计算机显然无法识别这一含义

问题是,

(i) 如何定义这么多人,使其尊重通过现有关系给出的链接

(ii)对于每个对象BC,是否有任何特殊的方式在表单视图中显示上述关系


(iii)这是否可能是许多关系的固有含义,我应该浏览文档中大量不存在的示例?

您应该能够定义相关的
字段。许多
使用从BC的关系。见:

例如:

Model_A:
    b_ids = fields.One2many(comodel_name='B',
                            inverse_name='a_id')
    c_ids = fields.One2many(comodel_name='C',
                            inverse_name='a_id')
Model_B:
    a_id = fields.Many2one(comodel_name='A')
    c_ids = fields.Many2many(comodel_name='C',
                             related='a_id.c_ids')
Model_C:
    a_id = fields.Many2one(comodel_name='A')
    b_ids = fields.Many2many(comodel_name='B',
                             related='a_id.b_ids')
一旦定义了相关字段,所有正常的多个交互都会工作(视图、ORM等)。您可以将
store=True
添加到字段定义中,以将关系存储在其自己的数据库表中,以便于搜索和查询