单个模型上的 Odoo 多个 many2many 或 One2many 字段

Odoo multiple many2many or One2many fields on single model

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

知道如何防止这种情况发生,我理解为什么会发生这种情况,因为 many2many 使用 project_id 和 res_partner_id 创建了 table 并且不知道它是否被创建来自卖家、买家或联系人字段。

提前致谢。

您是否为 Many2Many 字段指定了 table 名称?使用属性 "relation" 因为如果您一直传递相同的两个相关字段名称。默认情况下,table 始终使用相同的名称创建。

说明:

在你的情况下你有

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 将创建两个同名的 table。 "partner_id_project_id_rel"。在您在一个 Many2many 中创建记录的那一刻,相同的 table 将被更新。

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

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