![](/img/trans.png)
[英]icontains in Django QuerySet doesn't give the case insensitive result?
[英]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
盡管外殼顯然是錯誤的,但結果仍會返回條目。 我檢查了其他過濾器類型,它們按預期工作:
搜索 2:
query = { 'username__exact' : 'SLAPPY' }
data_set = data_set.filter(Q(**query))
return data_set
正如預期的那樣,此搜索不會產生任何結果。
我在這里錯過了什么嗎? 這可能是造成這種情況的根本原因嗎? 我希望包含區分大小寫,而 icontains 不區分大小寫,否則為什么兩者會存在?
我認為該信息已與documentation of contains
:
SQLite 用戶
SQLite 不支持區分大小寫的 LIKE 語句; 包含類似於 SQLite 的 icontains 的行為。 有關更多信息,請參閱數據庫說明。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.