下拉框搜索时,如果用首拼过滤?[已解决]
-
override
name_search方法, 加入对首拼字段的搜索。
加首拼字段的解决方法不够自动化,应该可以对汉字解析其拼音然后做搜索。 -
override
name_search方法, 加入对首拼字段的搜索。
加首拼字段的解决方法不够自动化,应该可以对汉字解析其拼音然后做搜索。@digitalsatori 非常感谢,已按您的指点完美实现该功能。我之所以添加一个字段来存储首拼,是为了提高查询效率。
我目前还不会写基类,等我学会了,就不存在自动化的问题,直接继承即可
关于继承,有2个问题:
1.跨模块调用。
2.如何在xml配置页面时,方便使用
不过,这些问题在当前都还不重要,先学别的东西 -
@digitalsatori 非常感谢,已按您的指点完美实现该功能。我之所以添加一个字段来存储首拼,是为了提高查询效率。
我目前还不会写基类,等我学会了,就不存在自动化的问题,直接继承即可
关于继承,有2个问题:
1.跨模块调用。
2.如何在xml配置页面时,方便使用
不过,这些问题在当前都还不重要,先学别的东西 -
@1234567 假设档案类类名为A,名称字段为name,首拼字段为spell。算法如下:
1.写设置首拼的代码
获取汉字首拼的代码,参见:http://www.jb51.net/article/68715.htm
将里面的方法,写到utils.py文件中,然后添加方法:def set_spell(values): if values.has_key('name'): values['spell'] = multi_get_letter(values['name'])2.在A中,重写write、create方法,并添加计算首拼的代码。例如:
@api.model def create(self, values): utils.set_spell(values) return super(A, self).create(values)3.为在其他地方使用该档案A的下拉框,添加对搜索的支持。在A中继续添加代码:
@api.model def name_search(self, name='', args=None, operator='ilike', limit=100): args = args or [] domain = ['|', ('spell', operator, name), ('name', operator, name)] recs = self.search(domain + args, limit=limit) return recs.name_get() -
@1234567 假设档案类类名为A,名称字段为name,首拼字段为spell。算法如下:
1.写设置首拼的代码
获取汉字首拼的代码,参见:http://www.jb51.net/article/68715.htm
将里面的方法,写到utils.py文件中,然后添加方法:def set_spell(values): if values.has_key('name'): values['spell'] = multi_get_letter(values['name'])2.在A中,重写write、create方法,并添加计算首拼的代码。例如:
@api.model def create(self, values): utils.set_spell(values) return super(A, self).create(values)3.为在其他地方使用该档案A的下拉框,添加对搜索的支持。在A中继续添加代码:
@api.model def name_search(self, name='', args=None, operator='ilike', limit=100): args = args or [] domain = ['|', ('spell', operator, name), ('name', operator, name)] recs = self.search(domain + args, limit=limit) return recs.name_get()
Hello! It looks like you're interested in this conversation, but you don't have an account yet.
Getting fed up of having to scroll through the same posts each visit? When you register for an account, you'll always come back to exactly where you were before, and choose to be notified of new replies (either via email, or push notification). You'll also be able to save bookmarks and upvote posts to show your appreciation to other community members.
With your input, this post could be even better 💗
Register Login