我正在使用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'时,它会返回在我的Test表中有一个FOOBAR条目作为名称的对象列表。
为什么它表现得那么奇怪......?
答案 0 :(得分:9)
这可能是由于你使用的mysql-db,可能是你的db表(name)列有sql区分大小写的coollate
ALTER TABLE t1 MODIFY
col1 VARCHAR(5)
CHARACTER SET latin1
COLLATE latin1_swedish_ci;