2017-10-13 4 views
2

Je hérite du module project.project où j'ai ajouté plusieurs champs Many2many: 'Acheteurs', 'Vendeurs', 'Contacts', etc. Tous liés à res. partenaire. Sachez quand j'ajoute plusieurs enregistrements à l'un des champs, par exemple ajouter des acheteurs. Ces acheteurs sont automatiquement renseignés dans les vendeurs, champs de contact aussi. Toute idée de comment je peux empêcher cela, je comprends pourquoi cela se passe depuis le many2many crée une table avec project_id et res_partner_id et ne sait pas si elle a été créée à partir du champ vendeurs, acheteurs ou contacts.Odoo plusieurs champs many2many ou One2many sur un seul modèle

Merci d'avance.

Répondre

4

Avez-vous spécifié un nom de table pour votre champ Many2Many? avec l'attribut "relation" parce que si vous avez passé tout le temps les deux mêmes nom de domaine connexes. La table tout en créant tout le temps avec le même nom par défaut.

Explication:

Dans votre cas, vous avez

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 va créer deux tables avec le même nom. "partner_id_project_id_rel". Au moment où vous créez un enregistrement dans un Many2many la même table sera mise à jour. Mais si vous spécifiez un nom de relation, entrez

Deux tables avec un nom différent vont être créées. Comme ça.

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