如何制作 Django 嵌套模板以获得更好的 SRP
How to make Django Nested Templates for better SRP
我正在尝试为我的网站制作一个基本模板。理想情况下它看起来像这样
{% block navigationbar %}{% endblock %}
{% block content %}{% endblock %}
{% block footer %}{% endblock %}
这样我就可以拥有单独的 navigationbar.html 和 footer.html 文件。我想展示的所有视图都将这样:
{% extends 'portfolio/base.html' %}
{% block content %}
// View Code here
{% endblock %}
任何实现此目的的方法。我意识到我不能进行多次扩展,并且尝试了不同的嵌套组合,但到目前为止对我没有任何效果。
所以理想的结果是 4 个文件。对于主页:
- NavigationBar.html - 保存导航条码
- Footer.html - 保存页脚代码
- Base.html - 包含导航栏、页脚和内容
- Home.html - 保留主页的内容,但在加载时用户会看到导航栏和页脚。
您可以使用 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" %}
我正在尝试为我的网站制作一个基本模板。理想情况下它看起来像这样
{% block navigationbar %}{% endblock %}
{% block content %}{% endblock %}
{% block footer %}{% endblock %}
这样我就可以拥有单独的 navigationbar.html 和 footer.html 文件。我想展示的所有视图都将这样:
{% extends 'portfolio/base.html' %}
{% block content %}
// View Code here
{% endblock %}
任何实现此目的的方法。我意识到我不能进行多次扩展,并且尝试了不同的嵌套组合,但到目前为止对我没有任何效果。
所以理想的结果是 4 个文件。对于主页:
- NavigationBar.html - 保存导航条码
- Footer.html - 保存页脚代码
- Base.html - 包含导航栏、页脚和内容
- Home.html - 保留主页的内容,但在加载时用户会看到导航栏和页脚。
您可以使用 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" %}