Odoo несколько полей many2many или One2many на одной модели
Я наследую модуль project.project, в который я добавил несколько полей Many2many: "Покупатели", "Продавцы", "Контакты" и т. Д. Все они связаны с res.partner. Знайте, когда я добавляю несколько записей в одно из полей, например, добавляю несколько покупателей. Эти покупатели автоматически заполняются в продавцах, контактные поля тоже.
Любая идея, как я могу предотвратить это, я понимаю, почему это происходит, так как many2many создает таблицу с project_id и res_partner_id и не знает, была ли она создана из поля продавцов, покупателей или контактов.
Заранее спасибо.
1 ответ
Вы указали имя таблицы для своего поля 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',
)
Оду будет создавать две таблицы с одинаковыми именами. "Partner_id_project_id_rel". В тот момент, когда вы создаете запись в одном 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',
)