1

根据本文档,我应该能够在我的 Django 对象变量上使用查询集“_contains”来过滤我的结果

但是当我实现这段代码时:

cookbooks = Books.objects.filter (category_contains = 'cooking')

我收到以下错误:

Cannot resolve keyword 'category_contains' into field. Choices are: category, adder, date etc.

为什么会这样?我还看到了这个 StackOverflow 问题,有人解释说只使用变量category意味着category_exact。但是,如果我写category_exact,我会得到一个类似的错误。

4

2 回答 2

5

您需要使用双下划线__而不是单下划线_

于 2012-05-17T19:05:50.170 回答
3

字段查找以两个下划线 ( __) 而不是一个 ( _) 为前缀。当您不熟悉语法时,一开始可能很难区分。

仔细检查一般的字段查找文档,更具体地说是包含文档。以下是 contains 文档中的示例,其中带有显示一两个下划线的注释:

Entry.objects.get(headline__contains='Lennon')
#                         __ <-- 2 _'s
#                     not _  <-- 1 _
于 2012-05-17T19:19:54.360 回答