如何在Django查询中忽略大小写进行字符串过滤?
解决Django查询忽略大小写的过滤问题
直接把查询中的__contains替换为__icontains即可实现不区分大小写的模糊匹配,这是Django ORM提供的原生解决方案,适配绝大多数主流数据库:
alerts = Event.objects.filter(process_type__reporting_group__option__icontains=group_search_bar)
如果需要更自定义的大小写处理逻辑,也可以通过将字段和输入值统一转成小写(或大写)来实现,示例如下:
先导入Lower函数:
from django.db.models.functions import Lower
再构造查询:
alerts = Event.objects.filter(Lower(process_type__reporting_group__option)__contains=Lower(group_search_bar))
这种方式适合需要对大小写转换有额外控制的场景,但日常使用中__icontains已经足够简洁高效。
内容的提问来源于stack exchange,提问作者edche
相关产品推荐
相关产品推荐

