django模板继承使用相同标签多个模板

Posted

技术标签:

【中文标题】django模板继承使用相同标签多个模板【英文标题】:django template inheritance use same tag multiple templates 【发布时间】:2012-10-07 19:57:39 【问题描述】:

我正在使用 django 模板系统,尽管有一种方法可以为多个模板使用相同的变量继承标记,而无需从另一个模板中提取数据。

<div id="content-container3">

% block content-container2 %% endblock %

</div>

所以我想在说 people.html 模板和 test.html 模板中使用上述内容。

例如: % 扩展“base.html” % block content-container2 %% endblock %

虽然在这种情况下它交叉引用了来自两个模板的信息 - 每个变量继承标记是否必须是唯一的?

【问题讨论】:

你能用你期望的模板行为的例子来扩展你的问题吗? 【参考方案1】:

我认为您应该尝试像下面的示例那样嵌套块。

% block first_section %
    % block first_section_upper %
      block.super
    % endblock first_section_upper %

      <h1 class="display-5">Some content</h1>
      <h5 style="color: white !important;" class="display-5"> *Your text here*</h5>

      <p class="lead">The Algorithms that run our Universe</p>

    % block first_section_lower %
      block.super
    % endblock first_section_lower %
% endblock first_section %

每个新模板的 h1 标签和 p 标签可以不同。据我所知,这可能会解决您的问题。

【讨论】:

【参考方案2】:

尝试将这部分代码移动到不同的文件(content_container3.html)并使用include标签...否则我不明白你的问题:)

【讨论】:

嗨 chmeliuk-base.html 和子模板中都包含该标签。虽然我想在另一个子模板中使用相同的标签并且毫不奇怪它会跨越另一个子模板的信息 - 所以,我确信有办法解决这个问题,也许可以创建自定义标签?

以上是关于django模板继承使用相同标签多个模板的主要内容,如果未能解决你的问题,请参考以下文章

Python学习---django模板继承180123

Django4.3_templates模板之继承标签extends和include添加标签

django-7.django模板继承(block和extends)

在 Django 模板中标记或继承相同的代码,并进行细微的更改

python测试开发django-7.django模板继承(block和extends)

Django模板继承 - 如何为不同的块使用相同的内容