【发布时间】:2011-06-07 21:44:15
【问题描述】:
我想在我的 Django 模板中使用{% include page.html %} 标记,并动态构造page.html 的值。
在 Django 中有没有办法做到这一点?
这是一个伪代码示例:
{% include page_{{mode}}.html %}
谢谢!
【问题讨论】:
标签: django
我想在我的 Django 模板中使用{% include page.html %} 标记,并动态构造page.html 的值。
在 Django 中有没有办法做到这一点?
这是一个伪代码示例:
{% include page_{{mode}}.html %}
谢谢!
【问题讨论】:
标签: django
您可以直接在模板中使用with 标签和add 过滤器连接纯字符串和变量,
见this SO answer。
【讨论】:
总结:
您可以结合 django 的内置 'with' template tag 将动态构造的模板名称分配给变量和 'add' filter 并动态构造模板名称。
例如:
{% with template_name='page_'|add:mode|add:".html" %}
{% include ""|add:template_name %}
{% endwith %}
【讨论】:
来自文档:
模板名称可以是 变量或硬编码(引用) 字符串,单声道或双声道 引号。
因此,在您的视图中构造一个变量并通过上下文将其传递给您的模板,例如“modeTemplate”:“page_”+mode+“.html”。然后做:
{% include modeTemplate %}
假设 'mode' 在您的视图代码中是一个 Python 变量。
【讨论】: