首页 > 解决方案 > Django 嵌套模板

问题描述

为了保持 DRY,我现在正在设置我的 Django 项目 HTML 文件。我已成功地将大多数重复信息提取到我的 base.html 页面。在我的大多数(但不是全部)页面上,我的内容显示在一个通用“面板”中,该面板基本上只是一个带有样式的容器设置,但它有一些 div 标签,所以它看起来有点难看,而且我不得不在每一页上多次输入完全相同的代码。

我的想法是将其提取到“panel.html”,然后在需要时调用它,例如,某些页面可能只有一个“面板”,而我的仪表板(它是一个管理站点)可能有 15 个以上。因此,每次我需要设置“面板”时不必输入所有这些代码,这似乎是一个更好的主意,也更简洁。

我的理想页面看起来像..

{% extends 'base.html' %}
{% block content %}

    {% extends 'panel.html' %}
    {% block panel_content %}
        Panel content...
    {% endblock panel_content %}

    {% extends 'panel.html' %}
    {% block panel_content %}
        Second panel content
    {% endblock panel_content %}

{% endblock content %}

我知道我不能多次使用扩展,但我只是将它用作我想要实现的示例。

我可能会在我的网站上拥有数百个相同的“面板”,但每个面板都包含不同的内容,如果我可以将一个存储在 HTML 文件中的某个位置并根据需要多次调用它,那将会更加简洁。

有没有办法做到这一点?

标签: django

解决方案


您可以使用include

{% include "panel.html" %}

我应该提到,过多include的语句会产生性能问题。


推荐阅读