我无法通过计算字段进行搜索
我覆盖了product.template中要计算的名称字段,因此我需要按名称搜索产品
Init container
这是日志中的错误
class autopart(models.Model):
_inherit = 'product.template'
@api.multi
@api.depends('item', 'car', 'model', 'dsc', 'drc', 'year', 'org')
def compute_amount(self):
for rec in self:
rec.name = " ".join(
[rec.item and rec.item.name or "", rec.car and rec.car.name or "", rec.model and rec.model.name or "",
rec.dsc and rec.dsc.name or "", rec.drc and rec.drc.name or "", rec.org and rec.org.name or "",
rec.year and rec.year.name or ""])
def pro_searach(self, operator, value):
if operator == 'like':
operator = 'ilike'
name = self.env['product.template'].search([('name', operator, value)], limit=None)
return [(self.name, operator, value)]
name = fields.Char(string="Name", required=False ,compute=compute_amount,search=pro_searach)
答案 0 :(得分:1)
非永久性字段不可搜索。这是因为Odoo试图将域元组/过滤器解析为一个SQL查询,这当然是在现有列上进行搜索。非存储字段没有表列。
您现在有两个选择:
store=True
search='name_of_search_method
(more information here)在字段中进行设置第一个选项很简单,但是存储计算字段可能会对性能产生不良影响或良好影响。第二种选择要困难得多,因为您必须考虑如何使用从属字段或您在计算中使用的每个字段来构成搜索。