Найти - Пользователи
Полная версия: Jinja2 список параметров в шаблоне
Начало » Python для экспертов » Jinja2 список параметров в шаблоне
1 2
feniks92
Всем добрый день! Интересует вопрос - можно ли как то получить список параметров в шаблоне через jinja2?

В общем, есть задача выводить отформатированные сообщения, формат которых задается шаблоном, но, почитав документацию по jinja, я так и не смог понять - как подставить значения в шаблон, если я не знаю, какие там будут переменные… известно лишь, что они, скорее всего, некоторые из параметров шаблона будут совпадать с названием переменной из словаря…

Но словарь у меня составной следующего вида
{'@fields':{'uuid': 123, 'method': 'blabla},
                      '@timestamp': '2015-12-15T15:45:39+00:00',
                      '@message': 'Some message'}

А в шаблоне, скорее всего, параметры будут задаваться видом: {{ @timestamp }} {{ @fields.uuid }}

или видом {{ dict.@timestamp }} {{ dict.@fields.uuid }}, вот толкьо как узнать название dict? оно может называться по разному…

И еще…. jinja не распознает символ @ а у меня поля заданы с такими именами…

ААА!!! Уже мозги кипят, помогите пожалуйста!!!!!
4kpt_IV
Подход не верен в корне. Необходимо для jinja данные готовить, а не в jinja искать и угадывать
feniks92
Я понимаю, но задание так звучало, мол сделать вывод такой вот по умолчанию, но возможно форматирование с использованием загружаемого шаблона…
А что с @?
4kpt_IV
jinja работает с питон определителями.
Вы можете в питоне написать

@a = 12

?
feniks92
нет, но я могу же в словаре использовать {“@a”: 12}
feniks92
Просто сами записи берутся из json, если это имеет какое нибудь значение
4kpt_IV
Так и получайте из словаря в jinja

{{ my_dict["@a"] }}
feniks92
оу… а так можно? просто привык еще с джанги, что в шаблонах значения словарей получаются видом
{{ my_dict.key }}
feniks92
АААА!!!! ПАСИБА!!!!!!!!!!! ОТ ДУШИ!!!!!! ТЫ ЧЕЛОВЕЕЕЕЕЧИЩЕЕЕЕЕЕ!!!! СЧАСТЬЕ ТО КАКОЕ!!!!!!!)))))
4kpt_IV
feniks92
оу… а так можно? просто привык еще с джанги, что в шаблонах значения словарей получаются видом
{{ my_dict.key }}

Можно и так. Можно вообще через .get(). Можно даже логику получения встраивать. jinja - это не из мира джанги. Сравнение выглядит кощунственным
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB