2017-02-27 3 views
0

사용 이름 검색을 원하지만 아래 예제는 작동하지 않습니다.odoo에서 name_search를 사용하십시오. 9

태그 (1) 1234

태그 나 태그 (3)을 얻을 싶어요 3 0369

형 036 후 2 2568

태그!

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 반환하지 않습니다.

답변

0

검색을 작동 시키려면 like 또는 ilike 연산자를 사용해야합니다. 그 때 이어야합니다. 보다 구체적인 검색 패턴을 원할 경우 =like 또는 =ilike을 사용할 수도 있지만 지금 당장은 예제가 없으므로 Odoo doc을 참조하십시오.