【发布时间】:2015-08-16 10:42:02
【问题描述】:
我想知道 Django 中依赖于父模板的子模板。我需要知道所有文件名或修改日期。我如何在 Django 中检查它。
例如{% extend %}、{% include %}等孩子。
【问题讨论】:
-
简短回答:不可能。长答案:Wojtek Szkutnik 下面的答案是你能得到的最接近的答案。
标签: python django django-templates
我想知道 Django 中依赖于父模板的子模板。我需要知道所有文件名或修改日期。我如何在 Django 中检查它。
例如{% extend %}、{% include %}等孩子。
【问题讨论】:
标签: python django django-templates
由于 {% extends %} 和 {% include %} 也接受变量作为参数,除非这些变量具有确定性的值,否则生成模板继承树没有防弹的方法。毕竟,这些变量值可能会以代码无法预测的方式发生变化。
如果您只使用静态扩展和包含,那么我认为常规文本搜索是您最好的朋友。你可以这样做:
find . -name "*.html" -print | xargs grep "{% extends "
在您的项目文件夹中生成所有扩展标签的列表,然后您只需要解析输出。包含标签也是如此。
对于不同的解决方案,我想您可以在 Django 模板引擎中添加一些调试代码并遍历整个站点或特定页面 - 这样您就可以构建这样的树,但仅限于您定义的视图和条件。
【讨论】: