Django嵌套过滤器值

时间:2010-07-07 04:15:52

标签: django

此行有效并返回我正在寻找的值:

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个。

我在这里做错了什么。

提前致谢。

1 个答案:

答案 0 :(得分:0)

我认为错误不在于您有两个过滤器 - 它在实际的第二个过滤器中。 k=k-1只有在模型字段都有一个名为k的局部变量时才会起作用 - 第一个位于表达式的左侧,第二个位于右侧。

如果您想引用表达式右侧的模型字段,请使用F

.filter(k=(F('k')-1)