django - Django __exact 查询集过滤器 - 区分大小写不能按预期工作
问题描述
我正在尝试过滤大小写应该敏感的 Django 查询集,尽管我没有从“__exact”过滤器中得到我期望的结果,我认为它是区分大小写的: https ://docs.djangoproject.com/ zh/3.0/ref/models/querysets/
我的代码如下所示:
lower_case_test = MyObject.objects.filter(name__exact="d")
for item in lower_case_test:
print("item.name: ", item.name)
我在“MyObject”模型中有 2 个,一个名为“d”,一个名为“D”。
上述代码的输出是:
(u'item: ', u'D') (u'item: ', u'd')
谁能建议这里可能是什么问题?提前致谢。
解决方案
如果您使用 SQLLite DB,则 __exact 和 __iexact 查询不区分大小写。
要正确获取功能,请将 MySql 数据库的排序规则更改为 latin1_swedish_cs 或 utf8_bin 以进行区分大小写的比较。
检查链接以获取详细解决方案。 https://code.djangoproject.com/ticket/2170
推荐阅读
- api - Yii2:未发送 HttpClient 授权标头
- javascript - 从 TypeScript 中的状态解构值时出错
- sql-server - 使用行到列转换连接表
- git - 我应该使用 gitignore 还是“your-api-key-here”来隐藏 Github 上的 api 密钥?
- http - 如何使用套接字分别发送 HTTP 标头和 HTTP 正文?
- python - SQL Server 机器学习调用外部 REST API
- python - 按日期和时间对 Pandas 数据框进行排序
- mixpanel - 如何在 MixPanel 中创建新组织
- c# - 调用静态方法时使用特定类型/程序集 - Powershell
- javascript - 将 bootstrap 5 模块导入 next.js