从 django 中的不同块创建模板?

Posted

技术标签:

【中文标题】从 django 中的不同块创建模板?【英文标题】:Creating template from different block in django? 【发布时间】:2015-10-03 09:17:18 【问题描述】:

我正在尝试从 django 中的不同模板创建具有不同内容的单个页面,以便我可以打印它。它对不同页面的总结

base.html - mainContent 块在此模板内呈现 ma​​in.html - 从这里需要 mainContent 块 graph.html - 从这里需要 mainContent 块 charts.html - 需要此处的 mainContent 块 summary.html - 此处需要主要、图表、图表的内容(需要)

我有一个基本模板,它在每个页面上都像这样扩展(它有导航栏、页脚和侧边栏)

% extends "base.html" %

基本模板中有一个块,其中显示图形、主要、图表内容。我想要完成的是从这些页面获取 mainContent 并将其添加到名为 summary.html

的新模板中

由于每个页面都从基础扩展,我不知道该怎么做?我尝试使用包含,但它也会包含每个页面的基础。

编辑:我知道我可以将 mainContent 分成自己的单独文件,但我有很多模板并且正在寻找任何其他解决方案。

【问题讨论】:

【参考方案1】:

你可以分开内容。

我猜你有这样的事情:

<!-- graph.html -->
% extends "base.html" %
% block 'mainContent'%
    # Your graphs html here #
% endblock %

但是您可以将 graph html 放在一个单独的模板中,比如 graph_template.html 模板并包含它:

<!-- graph.html -->
% extends "base.html" %
% block 'mainContent'%
    % include 'graph_template.html' %
% endblock %

然后在 summary.html 中可以包含graph_template.html

【讨论】:

我知道我能做到。但这只是三个模板的示例,但我有很多模板并且正在寻找任何其他解决方案

以上是关于从 django 中的不同块创建模板?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Django 模板中的“带有模板标签”中设置 Django 渲染块值?

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

模板标签模板中的 Django 模板块

我的 Django 模板中的“Else if”语句出现在 HTML 标头块之后

在 django 模板中使用相同的块根据变量显示不同的信息

django:在包含的模板中使用块