Я пытаюсь проверить, существует ли значение в списке со словарями. Я использую колбу 1.0.2. Смотрите пример ниже:
person_list_dict = [
{
"name": "John Doe",
"email": "johndoe@mydomain.com",
"rol": "admin"
},
{
"name": "John Smith",
"email": "johnsmith@mydomain.com",
"rol": "user"
}
]
Я нашел два способа решения этой проблемы, вы можете сказать мне, что лучше?
Первый вариант: встроенный шаблонный фильтр jinja2 "map"
<code><pre>{% if "admin" in person_list_dict|map(attribute="rol") %}YES{% else %}NOPE{% endif %}
# верните ДА (Джон Доу) и НОП (Джон Смит)
Второй вариант: фильтр шаблона колбы
Код колбы:
@app.template_filter("is_in_list_dict")
def is_any(search="", list_dict=None, dict_key=""):
if any(search in element[dict_key] for element in list_dict):
return True
return False
Код шаблона:
<code><pre>{% if "admin"|is_in_list_dict(person_list_dict, "rol") %} YES {% else %} NOPE {% endif %}
# верните ДА (Джон Доу) и НОП (Джон Смит)
Спасибо: -).