2016-08-25 70 views
2

假设 '组合物' 我有三个对象A,B,C与关系一个许多和一个许多Ç。这自然意味着存在许多与许多关系,但其含义显然不被计算机识别。Many2many作为两种One2many

的问题是,

(我)怎么可以这样many2many这样定义:它尊重通过已经存在的关系给出的链接?

(ⅱ)中是否有该形状视图为每个对象Ç的显示所述关系的任何特殊的手段?

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

回答

1

你应该能够定义使用关系从ç相关fields.Many2many。请参阅:Related Fields Documentation

例如:

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') 

一旦你定义的相关领域,一切正常Many2many相互作用将工作(的观点,ORM等)。您可以将store=True添加到字段定义中,以将关系存储在其自己的数据库表中,以便于搜索和查询。