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 2.0:将数据从视图发送到包含在另一个模板中的模板(2 个不同的应用程序)
Django Python - 如何在一个 HTML 模板中显示来自不同表的信息