0

我正在尝试为我的网站制作一个基本模板。理想情况下,它看起来像这样

{% block navigationbar %}{% endblock %}
{% block content %}{% endblock %}
{% block footer %}{% endblock %}

这样我就可以拥有单独的 navigationbar.html 和 footer.html 文件。我想展示的所有视图都会这样写:

{% extends 'portfolio/base.html' %}
{% block content %}
// View Code here
{% endblock %}

任何方式来实现这一点。我已经意识到我不能进行多次扩展,并且我尝试了不同的嵌套组合,但到目前为止没有什么对我有用。

所以理想的结果是 4 个文件。主页:

  1. NavigationBar.html - 保存导航条码
  2. Footer.html - 保存页脚代码
  3. Base.html - 保存导航栏、页脚和内容
  4. Home.html - 保存主页的内容,但当它加载时,用户会看到导航栏和页脚。
4

1 回答 1

1

您可以使用include加载模板并使用当前上下文呈现它。这是一种在模板中“包含”其他模板的方式。

此示例在您的模板中包含模板“NavigationBar.html”和“Footer.html”的内容:

{% extends 'portfolio/base.html' %}

{% block content %}
    {% include "NavigationBar.html" %}

    // View Code here

    {% include "Footer.html" %}
{% endblock %}

您还可以使用参数将其他上下文传递给模板:

{% include "NavigationBar.html" with breadcrumb="home > wherever" %}
于 2020-03-01T01:29:08.757 回答