Вопрос по inheritance – Шаблонный шаблон Django

3

Я пытаюсь получить визуальное представление шаблонов проекта Django в виде иерархии.

Основная идея состоит в том, чтобы получить список имен шаблонов, который будет возвращать механизм загрузки шаблонов по умолчанию (т.е.TEMPLATE_DIRS, TEMPLATE_LOADERSи т. д.), а затем анализирует шаблоны в поисках{% block %} и теги {% extends%} для создания древовидной структуры. Наконец, используйте grapviz для визуализации.

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

Или, может быть, что-то подобное уже существует?

Ваш Ответ

1   ответ
1

для каждого используемого шаблона нет корневой записи.

Таким образом, если вы хотите выполнить поиск всех используемых шаблонов в проекте, вам нужно просканировать каждое место, которое может проверить загрузчик в TEMPLATE_LOADERS, чтобы сгенерировать возможные записи для последующей проверки снизу вверх. Это было бы сложно, некоторые бэкэнды загрузчиков могли бы даже не разрешить операцию выборки по каталогу.
Или вы можете проанализировать файлы представлений и URL-адресов внутри INSTALLED_APPS, чтобы получить имена шаблонов grep, но это работает только с жестко заданным именем шаблона и даже более сложно. Кроме того, могут быть шаблоны, загруженные из жестко запрограммированной строки ...

Для данного имени шаблона проще загрузить шаблон и проверить узлы внутри него, как и ваша идея. Вы можете проверитьdjango.template.base знать, как это работает.

Кроме того, вы можете воспользоваться django-debug-toolbar, чтобы показать шаблоны, используемые для запроса. И, IMO, сохраняя структуру шаблона плоской, простой и, таким образом, определяемой, легче достичь.

Error: User Rate Limit Exceeded Paolo

Похожие вопросы