使用 django-taggit 制作不区分大小写的标签
我向我的模型添加了 Tags = TaggableManager(blank=True) ,但我希望我的标签不区分大小写。 我看到了一些解决此问题的片段,想问是否有一种简单的方法可以做到这一点? 如果我必须重写 TaggableManager 中的某些方法,请告知我该怎么做?
提前致谢, 阿尔沙夫斯基·亚历山大.
I added tags = TaggableManager(blank=True) to my models, but I want my tags to be case-insensitive.
I saw some snippets of work arounds for this and wanted to ask if there is an easy way to do it?
If I have to override some methods from the TaggableManager, please advise how can I do that?
Thanks in advance,
Arshavski Alexander.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
我相信你现在已经找到了解决方案:)尽管我会给出答案,因为有人在搜索时可能会遇到这个问题 -
使用 https://github.com/shacker/django-taggit 版本的 django-taggit。
它允许配置 TAGGIT_FORCE_LOWERCASE = True
它还允许您过滤停用词。
I am sure you have figured out solution by now :) Though I will put the answer as someone might hit this while searching -
Use https://github.com/shacker/django-taggit version of django-taggit.
It allows to configure TAGGIT_FORCE_LOWERCASE = True
It also allows you to filter stop words.
最新版本的 django-taggit 支持
TAGGIT_CASE_INSENSITIVE
设置,其行为应如您所描述的方式。Recent versions of django-taggit support a
TAGGIT_CASE_INSENSITIVE
setting, that should behave the way you're describing.根据211行的_TaggableManager,
我们需要在settings.py中添加这个参数
According to _TaggableManager on 211 line
we need to add this parameter in settings.py
我已经使用此代码段来解决类似的问题。代码的副本(为后代重印):
基本上,您覆盖初始查询集,以便所有查询集都考虑不区分大小写。
I have used this snippet for a similar issue. A copy of the code (reprinted for posterity):
Basically, you override the initial queryset so that all querysets take case insensitivity into account.