我正在使用过滤器 icontains 来搜索单词,但我只希望它匹配整个单词。例如如果我寻找肝脏,我不希望它返回。
我的查询看起来像这样
MyModel.objects.filter(title__icontains=search_word)
我见过滤镜__search
但这不会返回 3 个字符或更少的结果,并且我正在构建的网站包含很多可以搜索的结果,例如“英国广播公司”
我无权访问数据库,但如果有人知道如何在代码中禁用它,那么我很乐意改用它作为替代方案。
正则表达式通常就足够了:http://docs.djangoproject.com/en/dev/ref/models/querysets/#regex
请注意,正则表达式语法是正在使用的数据库后端.
在 python (sqlite) 中,正则表达式为:
\b(word)\b
在 Mysql 中你有:
mysql> SELECT 'a word a' REGEXP '[[:<:]]word[[:>:]]'; -> 1
mysql> SELECT 'a xword a' REGEXP '[[:<:]]word[[:>:]]'; -> 0
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)