我正在使用 Django1.6,我正在尝试使用 QuerySet 过滤器,但它表现得很奇怪。
这是我的代码:
test_listing = Test.objects.filter(site__id=_site_id, show_on_site=True)
然后我尝试根据搜索到的文本获取列表:
test_listing = test_listing.filter(name__icontains = searched_text)
我正在使用 MySQL 作为我项目的数据库。
当我搜索“foo”时,它返回一个空白列表,但当我搜索“FOO”时,它返回对象列表,其中在我的测试表中有一个名为 FOOBAR 的条目。
为什么它的行为如此奇怪......?
最佳答案
这可能是由于 mysql-db您正在使用的可能是您的数据库表(名称)列具有 sql 区分大小写的 coollate
ALTER TABLE t1 MODIFY
col1 VARCHAR(5)
CHARACTER SET latin1
COLLATE latin1_swedish_ci;
关于python - Django QuerySet 中的 icontains 没有给出不区分大小写的结果?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21905543/