0

我有以下代码片段:

profiles_list = Profile.objects.filter(
    company=request.user.company,
)
search_query = None
search_key = None
if request.method == 'POST':
    search_key = request.POST.get('skey')
    search_query = request.POST.get('squery', None)
    profiles_list = profiles_list.filter(
        **{'%s__contains' % search_key:search_query}
    )

在我的本地开发机器上使用 SQLite 数据库,如果我输入 search_query,例如“Owal”,它会返回一个 search_key 包含“Owal”的记录,所以我得到例如“Kowalski”。

我在使用 MySQL 的生产服务器上尝试过它,但它不起作用。你知道为什么吗?

4

1 回答 1

1

来自Django 文档

SQLite 不支持区分大小写的 LIKE 语句;包含类似于 SQLite 的图标的行为。有关详细信息,请参阅数据库说明。

建议:%s__icontains改用。

于 2013-07-11T13:42:33.620 回答