在django中区分大小写的"精确"查询返回了多个不同的结果

ajt*_*ajt 4 python django case-sensitive django-models

我有一个django 1.2.1的实例在ubuntu上运行,带有一个mysql 5后端.我正在尝试制作一个区分大小写的查询,该查询应该只返回一个结果,但我得到两个具有相同内容但具有不同情况的结果.

我想获得一个具有以下标题的条目:互联网综合症中的猫

所以我使用以下查询:

c = Change.objects.filter(change_type='new',title__exact='Cat on the Internet syndrome')
Run Code Online (Sandbox Code Playgroud)

我得到以下结果:

>>> c
[<Change: Change object>, <Change: Change object>]
Run Code Online (Sandbox Code Playgroud)

每个Change对象的标题:

>>> for i in c:
...     print i.title
... 
Cat on the Internet Syndrome
Cat on the Internet syndrome
Run Code Online (Sandbox Code Playgroud)

正如您所看到的,每个对象标题中的综合征中的'S'对于S综合征具有不同的情况.我从阅读文档[0]的印象是所有查询都默认为'确切'类型.当我没有指定时,我得到相同的结果title__exact='Cat on the Internet syndrome'.

如何确保在上面概述的查询中使用区分大小写?

[0] http://docs.djangoproject.com/en/dev/ref/models/querysets/#std:fieldlookup-exact

编辑:Mysql版本是:

mysql  Ver 14.14 Distrib 5.1.41, for debian-linux-gnu (i486) using readline 6.1
Run Code Online (Sandbox Code Playgroud)

S.L*_*ott 11

http://code.djangoproject.com/ticket/2170

要在功能上正确,请更改MySql的排序规则?数据库到latin1_swedish_cs或utf8_bin进行区分大小写的比较.