Python 包含并包含 return 不区分大小写的结果
Python contains and icontains both return case insensitive results
我有一个非常奇怪的案例,我不确定我是否理解。我正在使用 field__contains 过滤数据,但得到的结果不区分大小写。例如:
条目数据:
{
"id": 2,
"last_login": null,
"is_superuser": false,
"username": "slappy",
"first_name": "don",
"last_name": "sweeney",
"email": "don@bruins.com",
"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
结果 return 尽管大小写明显错误,但条目。我检查了其他过滤器类型,它们按预期工作:
搜索 2:
query = { 'username__exact' : 'SLAPPY' }
data_set = data_set.filter(Q(**query))
return data_set
正如预期的那样,此搜索未产生任何结果。
我是不是漏掉了什么?这可能是根本原因吗?我希望 contains 区分大小写而 icontains 不区分大小写,否则为什么两者会存在?
我认为信息已通过 documentation of contains
:
提供
SQLite users
SQLite doesn’t support case-sensitive LIKE statements; contains acts
like icontains for SQLite. See the database note for more information.
我有一个非常奇怪的案例,我不确定我是否理解。我正在使用 field__contains 过滤数据,但得到的结果不区分大小写。例如:
条目数据:
{
"id": 2,
"last_login": null,
"is_superuser": false,
"username": "slappy",
"first_name": "don",
"last_name": "sweeney",
"email": "don@bruins.com",
"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
结果 return 尽管大小写明显错误,但条目。我检查了其他过滤器类型,它们按预期工作:
搜索 2:
query = { 'username__exact' : 'SLAPPY' }
data_set = data_set.filter(Q(**query))
return data_set
正如预期的那样,此搜索未产生任何结果。
我是不是漏掉了什么?这可能是根本原因吗?我希望 contains 区分大小写而 icontains 不区分大小写,否则为什么两者会存在?
我认为信息已通过 documentation of contains
:
SQLite users
SQLite doesn’t support case-sensitive LIKE statements; contains acts like icontains for SQLite. See the database note for more information.