【发布时间】:2013-04-02 20:52:53
【问题描述】:
是否有可能在调试模式下将有关模板生成的详细信息写入生成的视图?例如它可以生成这样的输出:
base.html:
<html>
<body>
{% block content %}
{% endblock %}
</body>
</html>
page.html:
{% extend "base.html" %}
{% block content %}
Foo
{% include "inner.html" %}
Bar
{% endblock %}
变成这样的形式:
<html>
<body>
<!-- block content -->
<!-- from "page.html" -->
Foo
<!-- include "inner.html" -->
Bar
<!-- endblock content -->
</body>
</html>
为什么?因为有时仅通过 IDE 就很难探索一些更大的依赖项。或者,也许您知道一些便于导航(生成图表等)的好工具?当然,这些信息只能在调试模式下生成。在生产中它们应该会消失。
【问题讨论】:
-
好问题!您可能会看看
django-debug-toolbar或django-template-repl是否有帮助。 -
对我来说
django-template-repl完全没用,因为我需要将整个文件树输入其中,如果我知道哪个文件不好的答案,我会在没有它的情况下得到答案。我创建了这个问题是因为我现在维护的代码中的魔术模板标签,它们根据插入的模型使用魔术(模板作为列表:("{app_label}/{model}/{template}.html", "{template}.html")),并且输出与使用其内容的不同模板过于相似。django-debug-toolbar很接近,但还不够,现在我正在使用它。 -
魔法是邪恶的。你有没有想过一个小 sed 脚本在每个块/包含之后和每个 endblock 之前添加 html 注释?
-
假设这严格用于开发/调试目的,您可以在解析或预解析阶段对 Django 模板系统进行monkeypatch/instrument 以在每个
{% block ... %}/{% endblock %}附近添加一个HTML 注释。 ..
标签: python django django-templates