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

标签 python mysql django django-models

我正在使用 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 区分大小写的 coollat​​e

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/

相关文章:

python - 使用python检测Windows中的鼠标点击

python - 如何在不导入的情况下计算方差和标准差

php - 使用比较时mysql查询返回问题

python - django 测试中的修补(模拟)表单

python - Html/Django - 从磁盘加载静态图像失败

python - 获取每月数据库的每日平均值

python - 创建一个新文件夹并将其作为 Selenium 中的默认下载

mysql - mysql 中的 select 命令返回空行,即使该条目存在于表中

php - 警告 : mysql_fetch_array(): supplied argument is not a valid MySQL result resource

django - 如何让South在PythonAnywhere上工作?