Django QuerySet中的icontains不给出不区分大小写的结果?

Vid*_*gar 4 python mysql django django-models

我正在使用Django1.6,我正在尝试使用QuerySet过滤器,但它表现得很奇怪.

这是我的代码:

test_listing = Test.objects.filter(site__id=_site_id, show_on_site=True)
Run Code Online (Sandbox Code Playgroud)

然后我试图根据搜索到的文本获取列表:

test_listing = test_listing.filter(name__icontains = searched_text)
Run Code Online (Sandbox Code Playgroud)

我使用MySQL作为我的项目的数据库.

当我搜索'foo'时,它会返回一个空白列表,但是当我搜索'FOO'时,它会返回在我的Test表中有一个FOOBAR条目作为名称的对象列表.

为什么它表现得那么奇怪......?

Piy*_*usG 9

这可能是由于你正在使用的mysql-db,可能是你的db表(name)列有sql区分大小写的coollat​​e

ALTER TABLE t1 MODIFY
    col1 VARCHAR(5)
      CHARACTER SET latin1
      COLLATE latin1_swedish_ci;
Run Code Online (Sandbox Code Playgroud)