Django:包含来自另一个应用程序的模板

Posted

技术标签:

【中文标题】Django:包含来自另一个应用程序的模板【英文标题】:Django: Include template from another app 【发布时间】:2013-10-01 08:21:44 【问题描述】:

我有一个项目应用和一个文件应用。在 project.html 文件中,我想包含 file_list.html 文件。这样一个项目对应的所有文件都显示在项目页面上。

project.html(项目应用)

% extends "site_base.html" %
...
% block body %
...
<div id="files">
    <p>More here soon but in the meantime, here's a link to the
        <a href="% groupurl file_list project %">file list</a>
    </p>
</div>
...
% endblock body %

我想直接插入文件列表,而不是此处指向文件列表的链接。

file_list.html(文件应用)

% extends "site_base.html" %
% block body %

% for file in files %
<tr>
    <td> file.filename </td>
</tr>
% endfor %

% endblock body %

我想出了以下可能性,但我不确定什么是实际有效的和最佳实践

用 % include % 包含 file_list.html。但是我错过了文件的上下文 写一个包含标签 使用 % block % 使用模板加载器

在这种情况下,最好的解决方案是什么。还有其他可能吗?

【问题讨论】:

【参考方案1】:

包含标签是这里唯一可能的答案,因为其他标签都不会在模板上下文中包含实际的文件列表。这正是包含标签的用途。

【讨论】:

以上是关于Django:包含来自另一个应用程序的模板的主要内容,如果未能解决你的问题,请参考以下文章

在另一个模板中显示来自 Django 视图的 HTML 表

django 将一个模板包含到另一个模板中

Django 2.0:将数据从视图发送到包含在另一个模板中的模板(2 个不同的应用程序)

Django Python - 如何在一个 HTML 模板中显示来自不同表的信息

如何在 django 模板中的另一个字段中更改后禁用复选框?

如果路径存在,则用于有条件地呈现或包含另一个模板的模板标记