我想知道如何继续在搜索中添加销售报价中条形码(ean 13)的产品。像这里的图片一样,我只有产品的名称和产品的内部参考。

我尝试像这样覆盖模型product.product:
# -*- coding: utf-8 -*-
from openerp import models, api
class product_product(models.model):
_inherit = "product.product"
def name_search(self, cr, user, name='', args=None, operator='ilike', context=None, limit=100):
res = super(product_product, self).name_search(self, cr, user, name='', args=None, operator='ilike', context=None, limit=100)
if operator in ('ilike', 'like', '=', '=like', '=ilike'):
domain = [('ean13', operator, name)]
ids = self.search(cr, user, domain, limit=limit, context=context)
res += self.name_get(cr, user, ids, context=context)
return res
self.search([('ean13', 'ilike', name)])发布于 2018-05-10 23:45:41
name_get方法更改drop_down列表中显示的默认名称。
改写name_search方法,如下所示:
@api.model
def name_search(self, name='', args=None, operator='ilike', limit=100):
# Make a search with default criteria
temp = super(models.Model, self).name_search(
name=name, args=args, operator=operator, limit=limit)
# Make the other search
temp += super(ProductProduct, self).name_search(
name=name, args=args, operator=operator, limit=limit)
# Merge both results
res = []
keys = []
for val in temp:
if val[0] not in keys:
res.append(val)
keys.append(val[0])
if len(res) >= limit:
break
return res您只需要将ean13的结果也添加到方法中:
self.search([('ean13', 'ilike', name)])发布于 2020-08-05 20:06:44
你也可以这样写
def name_search(self, cr, user, name='', args=None, operator='ilike', context=None, limit=100):
res = super(product_product, self).name_search(self, cr, user, name='', args=None, operator='ilike', context=None, limit=100)
if operator in ('ilike', 'like', '=', '=like', '=ilike'):
domain = [('ean13', operator, name)]
ids = self.search(cr, user, domain, limit=limit, context=context)
res+=self.browse(ids).name_get()
return reshttps://stackoverflow.com/questions/50269680
复制相似问题