Учитывая путь к шаблону 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 ... %}
вручную. Какой лучший способ сделать это?