【问题标题】:Django: construct value of {% include %} tag dynamically?Django:动态构造{% include %}标签的值?
【发布时间】:2011-06-07 21:44:15
【问题描述】:

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

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

这是一个伪代码示例:

{% include page_{{mode}}.html %}

谢谢!

【问题讨论】:

    标签: django


    【解决方案1】:

    您可以直接在模板中使用with 标签和add 过滤器连接纯字符串和变量, 见this SO answer

    【讨论】:

      【解决方案2】:

      我认为goliney 提供了更好的答案here

      总结:

      您可以结合 django 的内置 'with' template tag 将动态构造的模板名称分配给变量和 'add' filter 并动态构造模板名称。

      例如:

       {% with template_name='page_'|add:mode|add:".html" %}
           {% include ""|add:template_name %}
       {% endwith %}
      

      【讨论】:

        【解决方案3】:

        来自文档:

        模板名称可以是 变量或硬编码(引用) 字符串,单声道或双声道 引号。

        因此,在您的视图中构造一个变量并通过上下文将其传递给您的模板,例如“modeTemplate”:“page_”+mode+“.html”。然后做:

        {% include modeTemplate %}
        

        假设 'mode' 在您的视图代码中是一个 Python 变量。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2012-09-22
          • 2014-07-29
          • 1970-01-01
          • 2010-12-08
          • 2022-01-23
          • 2015-08-27
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多