В поисках цепочки наследования шаблонов Django? - PullRequest
0 голосов
/ 22 октября 2019

Учитывая путь к шаблону Django, есть ли простой способ найти список цепочки наследования шаблона? Например, если mytemplate.html унаследовано от user-section-base.html, которое унаследовано от global-base.html, это будет что-то вроде:

>>> print(get_template_chain('myapp/mytemplate.html'))
>>> ['/project/myapp/templates/myapp/mytemplate.html', '/project/myapp/templates/myapp/user-section-base.html', '/project/myapp/templates/myapp/global-base.html']

Я пытаюсь написать генератор статического сайта, который автоматически восстанавливает статические страницыиз шаблонов Django, и мне нужно определить, когда базовый шаблон изменяется с прошлого поколения. Для одного плоского шаблона без наследования это тривиально, но для шаблона, который наследуется от родителя, который также наследует от родителя, мне также необходимо отслеживать изменения этих файлов.

Однако яне могу найти простой способ получить это, если не считать синтаксического анализа тегов {% extends ... %} вручную. Какой лучший способ сделать это?

1 Ответ

0 голосов
/ 22 октября 2019

Самый простой способ - подключиться к механизму рендеринга шаблонов и попробовать сделать это там. Это, однако, потребует глубокого погружения в его код. Если вы уже не знакомы с базой кода, я бы сказал, что разбирать - самый простой и быстрый вариант.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...