【问题标题】:Django: Include template from another appDjango:包含来自另一个应用程序的模板
【发布时间】: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 %}
  • 使用模板加载器

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

【问题讨论】:

    标签: django django-models django-forms django-templates django-views


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 2011-06-02
      • 2010-11-10
      • 1970-01-01
      • 1970-01-01
      • 2021-11-08
      • 2016-03-22
      • 1970-01-01
      • 2018-02-02
      • 2018-03-24
      相关资源
      最近更新 更多