根据选择字段更改多对一域

问题描述

我想根据用户选择更改多对一字段的域,选择字段必须要选项(代码,电话),但域没有更改,只获取认值:

    @api.onchange('search_by')
    def _get_partner(self):
        partners  = self.env['customer.regist'].search([('name','!=','New')])
        partner_list = []
        partner_list2 = []
        for rec in partners:
            partner_list.append(rec.name)
            partner_list2.append(rec.phone)
        res = {}
        if self.search_by == 'code':
            res['domain'] = {'search_value': [('name','in',partner_list)]}
        if self.search_by == 'phone':
            res['domain'] = {'search_value': [('phone',partner_list2)]}
        return res

解决方法

我没有测试代码,但从它的外观来看,域将始终包含所有 customer.regist 记录(当然名称为“New”的记录除外)。您正在查看所有记录并将他们的电话/姓名添加到列表中,然后说电话/姓名必须包含在该列表中。因此,您将始终拥有所有这些。