在odoo 9中使用name_search

时间:2017-02-27 09:59:02

标签: openerp odoo-9

我想使用名称搜索,但下面的示例不起作用。

标签1 1234

标签2 2568

标签3 0369

在输入036之后,我想要获得标签3!

    class MyTags(models.Model):
        _name = "my.tags"
        _description = "Tags"

        name = fields.Char(required=True)
        color = fields.Integer(string='Color Index')


        @api.multi
        def name_get(self):
            result = []
            for record in self:
                name = '[' + str(record.color) + ']' + ' ' + record.name
                result.append((record.id, name))
            return result


@api.model
    def name_search(self, name, args=None, operator='ilike', limit=100):
        args = args or []
        recs = self.browse()
        if name:
            recs = self.search([('color', '=', name)] + args, limit=limit)
        if not recs:
            recs = self.search([('name', operator, name)] + args, limit=limit)
        return recs.name_get()

请注意

以上示例在完全类型或扫描之后工作正常,例如。 0369返回标签3,但在类型之后,例如。 036不归。

1 个答案:

答案 0 :(得分:0)

您必须使用likeilike运算符才能使此类搜索正常运行。那必须是[('color', 'ilike', name)]。如果你想要一个更具体的搜索模式,你也可以使用=like=ilike,但我现在没有他们的例子,所以请查看Odoo doc以了解它们是什么做。

相关问题