我有以下代码段:
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的生产服务器上尝试过它并且它不起作用。你知道为什么吗?
答案 0 :(得分:1)
SQLite不支持区分大小写的LIKE语句;包含行为 喜欢SQLite的icontains。有关详细信息,请参阅数据库说明。
建议:改为使用%s__icontains
。