请帮忙,因为我很困惑。 我正在使用Django 1.11和python 3.5。 试图获取值,当通过“包含”时,一切正常,但是当我尝试使用iexact函数时,一直都有错误的响应。为什么呢?
示例:
>>> 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 :(得分:1)
exact
和contains
完全不同。我们可以说exact
是contains
的一个子集。
您的title
字段可能包含 'Django'
,但标题本身并非'Django'
,因此exact
或{{1失败。
e.g。
iexact
适用于title = 'Django: the framework for perfectionists with deadlines'
,但contains
无效。
如果您正在寻找包含案例的遏制,那么[i]exact
就是您想要的。