Подсчет объектов при некотором условии с помощью шаблонов Django
Я хотел бы подсчитать предметы при определенном условии.
Например (придумано view):
...
context['example'] = test
return render(request, 'index.html', context)
....
example имеет следующие значения:
| col1 | col2 |
|---|---|
| 12 | 34 |
| 99 | 42 |
| 99 | 42 |
Я знаю, как подсчитать все значения внутри example, я мог бы сделать что-то вроде этого:
{{ example.count }} и это вернет 3
Мой вопрос заключается в следующем: как я могу подсчитать все предметы при определенном условии?
Например, есть ли встроенная возможность сделать что-то вроде count where example.col2==42, а результат должен быть 2
Это можно сделать с помощью YAQL
import yaql
data = {"example": [{"col1": 12, "col2": 34}, {"col1": 99, "col2": 42}, {"col1": 99, "col2": 42}]}
engine = yaql.factory.YaqlFactory().create()
def evaluate(data, expr):
return engine(expr).evaluate(data=data)
expr = '$.example.where($.col2 = 42).len()'
evaluate(data, expr)