我想执行一个简单的查询:
Pizza.object.filter(topping__contains='PEPERONI')
像这样,它就像一个魅力。但是,如果我尝试:
Pizza.object.filter(topping__contains='peperoni')
它不起作用。
你知道为什么它区分大小写吗?是否有从django取消此功能的选项?
答案 0 :(得分:12)
使用Pizza.object.filter(topping__icontains='peperoni')
。
使用__icontains
检查过滤。
答案 1 :(得分:0)
您需要导入并使用Q
对象:
from django.db.models import Q
Resulting_Queryset = MyModel.objects.filter(Q(name__istartswith='Nishank Gupta'.strip().lower()) & Q(name__iendswith='Nishank Gupta'.strip().lower()))
这将匹配Nishank Gupta
和Nishank GUPTA
以及NisHANnk Gupta
,依此类推。希望这可以帮助。请让我知道你的看法。
或使用iexact:
MyModel.objects.filter(name__iexact='Nishank Gupta'.strip().lower())