很久以前用 Django 做的一个外包项目,我用了 PostgreSQL 的 ArrayField 套 CharField,非常方便的实现了基于 Tag 的搜索。最近客户反应了一个小问题,问能不能让搜索 Tag 时可以不区分大小写,我简单的研究了一下,发现是可行的。
首先,这个 Field 是这样定义的:
tags = ArrayField(models.CharField(max_length=32), blank=True, null=True, verbose_name="标签")
然后,搜索时是这样调用的:
queryset.filter(tags__contains=[query]……