两个很多2个领域与不同的合作伙伴

时间:2017-11-27 10:15:29

标签: openerp odoo-8 odoo-9 odoo-10

我有两个与res.partner相关的字段 在partner_ids中,我想选择合作伙伴,在recipients_ids中,我想选择另一个将获得该文档副本的合作伙伴。在表单视图中,如果我更改partner_ids或recipient_ids这两个字段变得相同的问题。我怎么能这样做我可以选择那些领域的不同合作伙伴?

partners_ids = fields.Many2many('res.partner', string='Companys Names')
recipients_ids = fields.Many2many('res.partner', string='Copys for')

1 个答案:

答案 0 :(得分:2)

您收到错误,因为这两个字段在postgres中的同一个表上工作 因为odoo为这个名字创建了一个表格,如下所示:

    current_model_name_co_model_name_rel

在你的情况下

    your_model_res_partner_rel

所以你需要告诉odoo每个领域都有它自己的关系

partners_ids = fields.Many2many('res.partner', # co_model
                                'your_model_partners_rel', # relation name change your_model to much your model name
                                string='Companys Names')
recipients_ids = fields.Many2many('res.partner', 
                                'your_model_recipients_rel', 
                                string='Copys for')

创建m2m字段时,最好通过keyarguement指定此值

        _name = 'my.model'

        # exmple
        user_ids = fields.Many2many(comodel_name='res.users', # name of the model
                            relation='my_model_users_rel', # name of relation in postgres
                            column1='session_id', # id reference to current mode
                            column2='user_id', # id reference to co_model
                            string='Allowed users')