Python包含并图标化两个返回不区分大小写的结果

问题描述 投票:0回答:1

我有一个非常奇怪的案例,我不确定我是否理解。我正在使用field__contains过滤数据,但是得到不区分大小写的结果。例如:

输入数据:

{
    "id": 2,
    "last_login": null,
    "is_superuser": false,
    "username": "slappy",
    "first_name": "don",
    "last_name": "sweeney",
    "email": "[email protected]",
    "is_staff": false,
    "is_active": true,
    "date_joined": "2019-12-09T09:07:11.897502Z",
    "groups": [],
    "user_permissions": []
}

搜索:

query = { 'email__contains' : 'DON' }
data_set = data_set.filter(Q(**query))
return data_set

尽管外壳显然是错误的,但结果仍返回输入。我检查了其他过滤器类型,它们按预期工作:

搜索2:

query = { 'username__exact' : 'SLAPPY' }
data_set = data_set.filter(Q(**query))
return data_set

此搜索未产生结果,正如预期的那样。

我在这里想念什么吗?可能是这的根本原因吗?我希望contains区分大小写,而icontains区分大小写,否则为什么两者同时存在?

python django django-queryset
1个回答
2
投票

我认为信息是通过documentation of contains给出的:

SQLite用户

SQLite不支持区分大小写的LIKE语句;包含行为如SQLite的icontains。有关更多信息,请参见documentation of contains

© www.soinside.com 2019 - 2024. All rights reserved.