Django嵌套模板

时间:2019-01-14 11:52:16

标签: 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文件中的某个地方,然后多次调用它,它将变得更加干净需要。

有没有办法做到这一点?

1 个答案:

答案 0 :(得分:0)

您可以使用include

{% include "panel.html" %}

我应该提到太多的include语句会导致性能问题。