此行有效并返回我正在寻找的值:
logs = Log.objects.filter(filterURI=aFilter.uri).values()[0]['yk']
但是,当我尝试添加另一个过滤器并执行相同操作时,我会收到错误:
logs = Log.objects.filter(filterURI=aFilter.uri).filter(k=k-1).values()[0]['yk']
我的理解是object.filter返回一个查询集,但“过滤器的过滤器”也是如此。所以我应该能够以相同的方式进行“值”调用,无论我有一个过滤器还是1000个。
我在这里做错了什么。
提前致谢。
答案 0 :(得分:0)
我认为错误不在于您有两个过滤器 - 它在实际的第二个过滤器中。 k=k-1
只有在模型字段和都有一个名为k的局部变量时才会起作用 - 第一个位于表达式的左侧,第二个位于右侧。
如果您想引用表达式右侧的模型字段,请使用F
:
.filter(k=(F('k')-1)