15

我想执行一个简单的查询:

Pizza.object.filter(topping__contains='PEPERONI')

像这样,它就像一个魅力。但如果我尝试这样做:

Pizza.object.filter(topping__contains='peperoni')

它不工作。

你知道为什么它是区分大小写的吗?是否可以从 django 取消此功能?

4

2 回答 2

37

使用Pizza.object.filter(topping__icontains='peperoni').

__icontains用检查过滤。

于 2012-08-26T17:37:48.643 回答
1

您需要导入和使用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 GuptaNishank GUPTA 等等 NisHANnk Gupta。希望这可以帮助。请让我知道你的看法。

或使用 iexact:

MyModel.objects.filter(name__iexact='Nishank Gupta'.strip().lower()) 
于 2017-06-19T07:15:23.763 回答