Отказ от ответственности: Это продолжение вопроса моего предыдущего вопроса .
Я пытаюсь написать тег шаблона в Django, который будет отображаться внутри тела Мако.Шаблон.Я не уверен, что это достижимо, но это то, что было бы чрезвычайно полезно для моего проекта, и, вероятно, многие другие люди, использующие шаблоны Mako в Django.
Вот определение моего тега:
def extends_mako(parser, token):
# wishlist below, this code does not work but it's what I want to achieve
template_html = ''
while (node = parser.nodelist.pop()):
template_html += node.render()
Способен ли объект синтаксического анализа отображать все дерево до этой точки?Моя единственная идея на данный момент - использовать объект парсера для рендеринга (и удаления из дерева) каждого узла, предшествующего этому.Затем я передаю вывод в Mako для рендеринга в виде HTML и использую его в качестве вывода для функции рендеринга узла, который я определяю.Я надеюсь, что когда к шаблону вызывается render, ему нужно будет только визуализировать этот один узел, поскольку мой шаблонный тег уже выполнил компиляцию для всего остального.Намерение состоит в том, чтобы использовать тег extends_mako в качестве последнего тега в дереве.
Я провел небольшое быстрое исследование pdb.set_trace, но пока не вижу ничего полезного.
Так;Можно ли использовать объект синтаксического анализатора, переданный в тег шаблона, для компиляции шаблона и получения окончательного визуализированного вывода?