2016-08-25 66 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添加到字段定義中,以將關係存儲在其自己的數據庫表中,以便於搜索和查詢。