Odoo 如何扩展搜索记录以同时查看自定义的多个字段?

Odoo 如何扩展搜索记录以同时查看自定义的多个字段?,odoo,odoo-14,Odoo,Odoo 14,在此图像中,有一个产品搜索记录,将搜索name和default\u code。我需要这样做,以便它也会在我的自定义许多领域 这是继承模型中的字段 product_list = fields.Many2many("product.list", string="Product List") 自定义模型只有_name、_description和name变量 问题是如何进行搜索以同时查看该领域所有可能的大量数据 我已经在继承的模型中尝试过这一点: @api.m

在此图像中,有一个产品搜索记录,将搜索
name
default\u code
。我需要这样做,以便它也会在我的自定义许多领域

这是继承模型中的字段

product_list = fields.Many2many("product.list", string="Product List")
自定义模型只有_name、_description和name变量

问题是如何进行搜索以同时查看该领域所有可能的大量数据

我已经在继承的模型中尝试过这一点:

@api.model
def name_search(self, name='', args=None, operator='ilike', limit=100):
    res = super(product_template_inherit, self).name_search(name='', args=None, operator='ilike', limit=100)
    ids = self.search(args + [(name, 'in', 'product_list.name')], limit=limit)
    if ids:
        return ids.name_get()
    return res
搜索没有结果。不管上面的代码如何,它仍然使用相同的行为进行搜索

摘要:我需要能够按产品列表搜索产品(在
product.template
模型中继承的自定义多个字段)

=============================================

更新

我一直在尝试的当前代码是这样的

@api.model
def _name_search(self, name, args=None, operator='ilike', limit=100, name_get_uid=None):
    args = args or []
    if operator == 'ilike' and not (name or '').strip():
        domain = []
    else:
        domain = ['|', ('name', 'ilike', name), ('product_list.name', 'ilike', name)]
        product_ids = self._search(expression.AND([domain, args]), limit=limit, access_rights_uid=name_get_uid)
    return self.browse(product_ids).name_get()

但是,它看起来仍然使用相同的旧字段进行搜索。它不会更改为像编写我的函数一样运行。

您可以计算搜索域,然后返回
\u search
方法的结果

模块已经使用相同的逻辑使用驾驶员姓名搜索车辆,您只需将
驾驶员id
替换为
产品列表

类别ProductProduct(models.Model):
_继承='product.product'
@api.model
定义名称搜索(self,name,args=None,operator='ilike',limit=100,name\u get\u uid=None):
args=args或[]
if运算符=='ilike'而非(名称或“”).strip():
域=[]
其他:
域=['|',('name',operator,name),('product_list.name',operator,name)]
返回self.\u search(expression.AND([domain,args]),limit=limit,access\u rights\u uid=name\u get\u uid)