2017-05-06 104 views
0

请帮忙,因为我很困惑。 我使用Django 1.11和python 3.5。 试图获取值,当通过“包含”获取一切正在工作,但是当我尝试iexact函数使用时,有所有时间错误的回应。为什么?在django中搜索对象

实例:

>>> print(Blog.objects.filter(title__contains='Django')) 
<QuerySet [<Blog: 1>, <Blog: 4>]> 
>>> print(Blog.objects.filter(title__iexact='Django')) 
<QuerySet []> 

>>> print(Blog.objects.get(title__contains='Django')) 
1 
>>> print(Blog.objects.get(title__iexact='Django')) 
... 
blog.models.DoesNotExist: Blog matching query does not exist. 

由于

+0

你想要'icontains'吗? – Ryan

回答

1

exactcontains有很大的不同。我们可以说exactcontains的子集。

title字段可以包含'Django',但标题本身并不'Django',所以exactiexact失败。

例如

title = 'Django: the framework for perfectionists with deadlines' 

Works为contains但失败了[i]exact

如果您正在寻找无症状的遏制,那么icontains是你想要的。

+0

哦,我知道了 但我怎么能得到包含的东西,但忽略大小写的对象?可能吗? –

+0

icontains working –

+0

你太棒了 –