Я пытаюсь найти способ вызова шаблонов def, определяемых данными, доступными в контексте.
Редактировать: Более простой пример того же вопроса.
Можно указать значение объекта в контексте:
# in python
ctx = Context(buffer, website='stackoverflow.com')
# in mako
<%def name="body()">
I visit ${website} all the time.
</%def>
Производит:
I visit stackoverflow.com all the time.
Я хотел бы разрешить настройку вывода на основе данных.
# in python
ctx = Context(buffer, website='stackoverflow.com', format='text')
# in mako
<%def name="body()">
I visit ${(format + '_link')(website)} all the time. <-- Made up syntax.
</%def>
<%def name='html_link(w)'>
<a href='http://${w}'>${w}</a>
</%def>
<%def name='text_link(w)'>
${w}
</%def>
Изменение атрибута format
в контексте должно изменить вывод с
I visit stackoverflow.com all the time.
до
I visit <a href='http://stackoverflow.com'>stackoverflow.com</a> all the time.
Составленный синтаксис , который я использовал в body
def
, явно неверен. Что мне нужно, чтобы динамически указать шаблон, а затем вызвать его?