【发布时间】:2022-12-03 01:17:43
【问题描述】:
我正在尝试显示具有多个物料清单的某些产品的视图。我创建了一个计算字段,用于标记应显示哪些记录。我正在尝试创建一个搜索功能,以便可以将感兴趣的记录显示为过滤器,但我在创建该功能时遇到了问题。
目前正在尝试将感兴趣的 record.id 附加到列表中并在搜索域中返回列表,但这不起作用。任何帮助将非常感激。请参阅下面的代码并提前致谢!
我尝试了以下代码,但它返回一个空数据列表。我认为我获取当前记录的 ID 并将其附加到返回列表的方式有问题。
class products_ppa_bom_check(models.Model):
_inherit = ['product.template']
ppa_multi_bom = fields.Selection([
('true', 'True'),
('false', 'False'),
('na', 'Not Applicable')],
string="PPA Multi BOM Check", compute='_compute_ppa_multi_bom',
search='_search_ppa_multi_bom')
def _compute_ppa_multi_bom(self):
for record in self:
count = record.env['mrp.bom'].search_count(['|', ('product_tmpl_id', '=', record.id), ('byproduct_ids.product_id.product_tmpl_id', '=', record.id)])
if (count > 1) and ('PPA' in str(record.default_code)):
record.ppa_multi_bom = 'true'
elif (count == 1) and ('PPA' in str(record.default_code)):
record.ppa_multi_bom = 'false'
else: record.ppa_multi_bom = 'na'
def _search_ppa_multi_bom(self, operator, value):
ids = []
for record in self:
count = record.env['mrp.bom'].search_count(['|', ('product_tmpl_id', '=', record.id), ('byproduct_ids.product_id.product_tmpl_id', '=', record.id)])
if (count > 1) and ('PPA' in str(record.default_code)):
ids = ids.append(record.id)
return[('id', 'in', ids)]
【问题讨论】: