【发布时间】:2018-01-18 15:11:40
【问题描述】:
删除 filter_domain 后,显示错误:
** 2018 年 2 月 1 日更新 **
这是我的 ..odoo/addons/ted/models/ted_inventory.py 路径下的代码
from odoo import api, fields, models
class TedInventory(models.Model):
_inherit = 'stock.picking'
trackingnum = fields.Char('trackingnum', readonly=True, index=True, help="Tracking number")
custom_name = fields.Char(string='Tracking Number',compute='_compute_custom_name',search='_search_custom_name')
@api.multi
@api.depends()
def _compute_custom_name(self):
''' The field has to be a computed field
You do not need to do anything here
'''
pass
def _search_custom_name(self, operator, value):
res = []
if operator == 'ilike':
query = "SELECT id FROM stock_picking WHERE position(trackingnum in %s) >= 1"
self._cr.execute(query, (value,))
res_ids = [x[0] for x in self._cr.fetchall()]
res.append(('id', 'in', res_ids))
return res
我确定我的应用已安装,因为我可以在 stock.picking 模型中找到 custom_name 和 trackingnum。
当我在这里搜索时,搜索结果什么都没有(因为我希望挖掘出TN1234的记录):
【问题讨论】:
-
你尝试了什么?请向我们展示您的一些代码。
-
我有上面的代码,但它不起作用,我不知道它出了什么问题。
-
并将这段代码放在相关的View中
-
我在想我可以使用带有 find() 的迭代循环来标识记录。但我不知道如何制作代码。
-
首先不要将代码添加为图片...所以有语法突出显示,所以请将您的代码添加为文本。第二个我不明白你的问题:举一个非常简单的例子:存在哪些记录(具有重要的字段内容),搜索短语是什么以及搜索后的结果应该是哪些记录。