0

我在我的模板中使用|length过滤器来显示我的对象的记录数,但是我目前被迫使用.count,因为似乎对相关集使用过滤器不起作用!以下

{{ myobject.retatedObject_set.all|length }}

从字面上打印:

{{ myobject.retatedObject_set.all|length }}

和这个:

{{ myobject.retatedObject_set.all.count }}

返回预期结果...

但是:count() 会生成一个额外的 SQL 查询,这就是为什么我总是使用 |length 过滤器而没有!(请参阅我的回答:https ://stackoverflow.com/a/18578147/267719提问django - 在视图中显示查询集的长度

这可以被认为是 Django 模板引擎中的错误吗?我怎样才能避免额外的查询?

编辑:

经过硬调试后,我意识到问题在于使用 django-debug-toolbar(在其面板中打印每个过滤器用作普通字符串)以及使用 AngularJS(其模板具有相同的语法)。我通过重新配置 AngularJS 以使用不同的符号来解决:

config(function($interpolateProvider) {
    $interpolateProvider.startSymbol('{$');
    $interpolateProvider.endSymbol('$}');
});
4

0 回答 0