非常简单。 我需要一个带有CaseInsensitive和Full Like的IN。
示例
搜索探针:“暴击,正常”
我需要找到所有具有列值的行:“严重,严重,严重,正常,正常”
PostgreSql
在Google上搜索时,我发现Postgres函数“类似于”
lower(column_name) similar to '%(crit|norm)%';
有没有办法在Django中实现?
在Yugandhar Chaudhari回复后添加新信息
问题不完整。搜索探针位于数组内部。 我想要这样的东西:
probes = ["Crit","Norm"]
model_name.objects.filter(columnname_icontains_in = probes)
答案 0 :(得分:0)
对于不区分大小写的匹配,您可以尝试
from django.db.models import Q
YouModel.objects.filter(Q(column_name__iexact="crit")|Q(column_name__iexact="norm"))
如果要查找子字符串模式
from django.db.models import Q
YouModel.objects.filter(Q(column_name__icontains="crit")|Q(column_name__icontains="norm"))
更新后:
values = ['crit', 'norm']
qobjs = Q() #empty objects
for value in values:
qobjs |= Q(coulmn_name__icontains=value) #Dynamically add Q objects
result = YourModel.objects.filter(qobjs)