2013-11-10 6 views
0

У меня есть следующий шаблон, а именно index.html. Я работаю в каркасе django. Теперь я показал значение, где вся скорость автомобиля превышает 30 км. Я только что разместил здесь часть соответствующего кода, который выведет значение, то есть, кодподсчет значений с использованием функции подсчета

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

теперь я просто хочу, чтобы подсчитать значения v.speed, как я могу это сделать с помощью питона или Джанго подсчитывать function.You может редактировать мой код в этом разделе.

Thank you.

ответ

1

values Если это Django QuerySet вы можете просто использовать .count()

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

{{values.count}} 

Вы также можете использовать {{values|length}}

1

Присваивание не допускается в Джанго. Итак, ваша единственная альтернатива - это подсчет в самом питоне &, который передает соответствующие данные в шаблон.

Таким образом, вы должны сделать следующее питона

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. 
0

В качестве альтернативы, так как ваш QuerySet уже оценивали, используя length фильтр будет сэкономить дополнительный запрос:

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

{{values|length}} 

Documentation.

Смежные вопросы