我想用icontains过滤一个查询集,因为我不希望过滤区分大小写:
some_title = "Foo"
result = Article.objects.filter(title__icontains=some_title)
标题为“foo”的文章不在结果范围内。为什么? 我正在使用Django(1.9.12)。
答案 0 :(得分:0)
我使用的是Mysql数据库,其排序规则设置为X_bin。我用以下内容更改了文章表的排序规则:
ALTER TABLE articles CHARACTER SET utf8 COLLATE utf8_general_ci;
适用于所有列:
ALTER TABLE articles CONVERT TO CHARACTER SET utf8;
不知何故,旧的排序规则使用另一种字符串比较方法,它不尊重字母大小写。新的校对utf8_general_ci。