Я использую шаблон Jinja2, со словарем. Вот примеры:
Мой словарь:
context = {
"lead":{
"name": "Cool lead with top sale",
"sale": 1
},
"contacts": [
{
"name": "John Doe",
"tags": ['vasya']
},
{
"name": "Nick Snow",
"tags": ['petya']
}
]
}
Я хочу получить имя контакта, но только одно, которое имеет тег 'petya'. Я создал фильтр:
def has_tag(entity, tagname):
contact = list(filter(lambda x: tagname in x['tags'], entity))[0]
return contact
Наконец, я хочу получить доступ к значению в моем шаблоне с помощью чего-то вроде этого:
{{ contacts | has_tag('petya') .name }}
или
{{ contacts | has_tag('petya') | .name }}
Но я не могу понять - как я могу это сделать? Потому что |
использует только для фильтров. Я не могу использовать selectattr , потому что может быть много вложенных диктовок, например contacts.responsible_user.phone.mobile
et c.
Пожалуйста, дайте мне совет, как я могу это сделать. Спасибо!