轻松逃脱Django模板变量

Koe*_*Bok 15 django django-templates

对于一个新项目,我们正在编写有关 Django模板系统的文档.我们也将Django用于文档项目本身,因此Django会在示例代码中获取所有示例变量并尝试渲染它们.我们发现解决这个问题的唯一方法是使用{%templatetag%},但这会使我们的代码真的无法读取.有没有办法让Django忽略特定部分中的所有模板变量?

Jul*_*lio 15

Django 1.5使用逐字模板标记解决了这个问题.它也适用于当前的Django版本.

{% verbatim myblock %}
    Avoid template rendering via the {% verbatim %}{% endverbatim %} block.
{% endverbatim myblock %}
Run Code Online (Sandbox Code Playgroud)


Lea*_*orm 7

由于Django模板词法分析器的限制(就像是一个kludgy hack),这是不可能的.但是,如果您愿意将示例代码放在单独的文件中,则可以使用以下ssi标记:

{% ssi /path/to/my/code/examples/example01.html %}
Run Code Online (Sandbox Code Playgroud)

并且它不会解析文件,只是逐字地包含它.但是,这也有局限性,因为您无法在包含路径中使用变量(即,如果移动模板位置,则必须重写或至少查找并替换模板文件),并且必须放入包含路径(即/path/to/my/code/examples)ALLOWED_INCLUDE_ROOTS在您的设置中settings.py.(见http://docs.djangoproject.com/en/dev/ref/templates/builtins/#ssi.)