单个模型

时间:2017-10-13 09:45:48

标签: python openerp odoo-8 table-relationships one2many

我正在继承project.project模块,其中我添加了多个Many2many字段:'买家','卖家','联系人'等。 所有都与res.partner有关。知道我何时向其中一个字段添加多个记录,例如添加一些买家。这些买家也会自动填写卖家,联系人字段。

我知道如何防止这种情况,我理解为什么会发生这种情况,因为many2many创建了一个包含project_id和res_partner_id的表,并且不知道它是从卖家,买家或联系人字段创建的。

提前致谢。

1 个答案:

答案 0 :(得分:6)

您是否为Many2Many字段指定了表名?属性"关系"因为如果你一直传递相同的两个相关字段名称。该表默认情况下始终以相同的名称创建。

阐释:

在你的情况下,你有

sellers_ids = fields.Many2many(
    comodel_name='res.partner',column1='partner_id', column2='project_id', 
) 

contact_ids = fields.Many2many(
    comodel_name='res.partner',column1='partner_id', column2='project_id', 
) 

Odoo将创建两个具有相同名称的表。 " partner_id_project_id_rel&#34 ;.在您在一个Many2many中创建记录的那一刻,同一个表将更新。

但是如果你指定一个关系名称。将创建两个具有不同名称的表。像这样。

 sellers_ids = fields.Many2many(relation='sellers_project_rel',
    comodel_name='res.partner',column1='partner_id', column2='project_id', 
) 

contact_ids = fields.Many2many(relation='contact_project_rel',
    comodel_name='res.partner',column1='partner_id', column2='project_id', 
)