У меня есть несколько шаблонов, которые включают в себя друг с другом, такие как:Шаблоны Mako: как найти имя шаблона, к которому относится текущий шаблон?
t1.html:
...
<%include file="t2.html" args="docTitle='blablabla'" />
...
t2.html:
<%page args="docTitle='Undefined'"/>
<title>${docTitle}</title>
...
И то, что я хочу сделать, это определить, что t2 входит в t1 (или другой, поэтому я могу использовать его имя). Никакой конкретный способ, описанный в документации, не попал мне на глаза, и я мог бы передать еще один аргумент (например, pagename = 'foobar), но он скорее похож на взлома.
Есть ли способ сделать это, используя простой вызов .render (blabla) для визуализации страницы?
Я не думаю, что в Мако есть способ выполнить требуемую интроспекцию (по крайней мере, не в чистом виде!). «Явный лучше, чем неявный», далек от «взлома» - это ** нормальный **, ** рекомендуется ** подход Python - так что я бы просто пошел с дополнительным аргументом, которого вы стремитесь избежать и не считайте это плохим решением. –
Приложение, в котором я работаю, использует 'rendertemplate (filename, ...)', а не метод '.render()', поэтому я создал оболочку для этой функции, которая помещает имя шаблона в параметр. Я полагаю, что можно было бы сделать что-то подобное для метода «render». –