在 many2one 字段 odoo 中搜索

Search in many2one field odoo

提问人:Talented Developer 提问时间:8/2/2023 最后编辑:CZoellnerTalented Developer 更新时间:8/2/2023 访问量:55

问:

在Odoo 15中,销售订单视图,在销售订单行内。我们可以通过条形码搜索产品,但我想使搜索不区分大小写,例如,如果我有两个产品,一个条形码 ='A11',另一个产品条形码 ='A112',我希望在输入“A11”时得到这 2 个产品。

Odoo现在的搜索区分大小写。enter image description here

Odoo 对一 Odoo-15

评论


答:

1赞 Kenly 8/2/2023 #1

它被实现为使用 = 运算符搜索产品,如果您将其替换为 ilike,它应该可以工作

例:

class ProductProduct(models.Model):
    _inherit = 'product.product'

    def _search(self, args, offset=0, limit=None, order=None, count=False, access_rights_uid=None):
        if args and args[0][0] == 'barcode':
            args[0] = ('barcode', 'ilike', args[0][2])
        return super(ProductProduct, self)._search(args, offset=offset, limit=limit, order=order, count=count,
                                                   access_rights_uid=access_rights_uid)

评论

1赞 CZoellner 8/2/2023
这可能会导致错误,例如,如果 中的第一个域叶是 (or) 或 (and)。但是,是的,这是一种方法,我可能会做类似的事情。args[0][0]args|&
1赞 Kenly 8/2/2023
感谢您@CZoellner反馈。这只是为了测试,在尝试访问第一个元素之前,我可能会先检查 arg 是元组还是列表的实例。