我想在我的Django模板中使用{% include page.html %}
标记,并动态构造page.html
的值。
有没有办法在Django中这样做?
这是一个伪代码示例:
{% include page_{{mode}}.html %}
谢谢!
答案 0 :(得分:21)
来自文档:
模板名称可以是a 变量或硬编码(引用) 字符串,单个或双 引号。
因此,在视图中构造一个变量,并通过上下文将其传递给模板,比如'modeTemplate':“page _”+ mode +“。html”。然后做:
{% include modeTemplate %}
假设'mode'是视图代码中的python变量。
答案 1 :(得分:7)
总结:
您可以组合django的内置'with' template tag,为动态和'add' filter分配动态构造的模板名称,并动态构建模板名称。
例如:
{% with template_name='page_'|add:mode|add:".html" %}
{% include ""|add:template_name %}
{% endwith %}
答案 2 :(得分:3)
您可以使用with
代码和add
过滤器在模板中连接纯字符串和变量,
见this SO answer。