0

我有以下模板,即index.html。我在 django 框架中工作。现在我已经显示了汽车的所有速度超过 30 公里的值。我刚刚在这里发布了输出值的相关代码部分,也就是说,代码是

{% for v in values %}
      {% if v.speed > 30 %}
        {{v.speed}}
      {% endif %}
{% endfor %}  

现在我只想计算 v.speed 值,我该如何使用 python 或 django 计数函数来做到这一点。您可以在该部分中编辑我的代码。

谢谢你。

4

3 回答 3

1

如果values是 Django QuerySet 你可以使用.count()

{% for v in values %}
  {% if v.speed > 30 %}
    {{v.speed}}
  {% endif %}
{% endfor %}

{{values.count}}

你也可以使用{{values|length}}

于 2013-11-10T10:22:12.630 回答
1

django 中不允许变量赋值。因此,您唯一的选择是在 python 本身中进行计数并将相应的数据传递给模板。

因此,您应该在 python 中执行以下操作

speedy_values = [v for v in values if v.speed > 30]

然后,将 speedy_values 传递给您的模板

{% for v in speedy_values %}
      {{v.speed}}
{% endfor %}
{{ v|length }} number of cars have speed greater than 30.
于 2013-11-10T10:30:31.643 回答
0

或者,由于您QuerySet已经被评估过,使用length过滤器将为您节省额外的查询:

{% for v in values %}
  {% if v.speed > 30 %}
    {{v.speed}}
  {% endif %}
{% endfor %}

{{values|length}}

文档

于 2013-11-10T11:39:14.157 回答