我想执行一个简单的查询:
Pizza.object.filter(topping__contains='PEPERONI')
像这样,它就像一个魅力。但如果我尝试这样做:
Pizza.object.filter(topping__contains='peperoni')
它不工作。
你知道为什么它是区分大小写的吗?是否可以从 django 取消此功能?
我想执行一个简单的查询:
Pizza.object.filter(topping__contains='PEPERONI')
像这样,它就像一个魅力。但如果我尝试这样做:
Pizza.object.filter(topping__contains='peperoni')
它不工作。
你知道为什么它是区分大小写的吗?是否可以从 django 取消此功能?
使用Pizza.object.filter(topping__icontains='peperoni')
.
__icontains
用检查过滤。
您需要导入和使用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())