簡體   English   中英

Python contains 和 icontains 都返回不區分大小寫的結果

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM