Django:动态构造{%include%}标签的值?

AP2*_*257 19 django

我想{% include page.html %}在我的Django模板中使用一个标签,并构造page.html动态的值.

在Django有没有办法做到这一点?

这是一个伪代码示例:

{% include page_{{mode}}.html %}
Run Code Online (Sandbox Code Playgroud)

谢谢!

Spa*_*man 21

来自文档:

模板名称可以是单引号或双引号中的变量或硬编码(带引号)字符串.

因此,在视图中构造一个变量,并通过上下文将其传递给模板,比如'modeTemplate':"page _"+ mode +".html".然后做:

{% include modeTemplate %}
Run Code Online (Sandbox Code Playgroud)

假设'mode'是视图代码中的python变量.


chr*_*ney 9

我认为goliney 在这里提供了更好的答案

综上所述:

您可以组合django的内置'with'模板标记,为动态和'add'过滤器分配动态构造的模板名称,并动态构建模板名称.

例如:

 {% with template_name='page_'|add:mode|add:".html" %}
     {% include ""|add:template_name %}
 {% endwith %}
Run Code Online (Sandbox Code Playgroud)