但是当我实现这段代码时:
cookbooks = Books.objects.filter (category_contains = 'cooking')
我收到以下错误:
Cannot resolve keyword 'category_contains' into field. Choices are: category, adder, date etc.
为什么会这样?我还看到了this StackOverflow question,有人解释说只使用变量category
暗示category_exact
。但如果我写category_exact
,我会收到类似的错误。
答案 0 :(得分:4)
您需要使用双下划线__
而不是一个下划线_
。
答案 1 :(得分:2)
字段查找以两个下划线(__
)为前缀,而不是一个(_
)。当您不熟悉语法时,很难区分它们。
仔细检查一般field lookups的文档,更具体地说,查看contains文档。以下是包含文档的示例,其中的注释显示了一个或两个下划线:
Entry.objects.get(headline__contains='Lennon')
# __ <-- 2 _'s
# not _ <-- 1 _