如何制作Django嵌套模板以获得更好的SRP

2024-06-07 06:00:13 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试为我的网站创建一个基本模板。理想的情况是这样的

{% 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. html-保存页脚代码
  3. Base.html-保存导航栏、页脚和内容
  4. Home.html-保存主页的内容,但当它加载时,用户会看到导航栏和页脚

Tags: 文件模板内容网站html情况contentblock
1条回答
网友
1楼 · 发布于 2024-06-07 06:00:13

可以使用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" %}

相关问题 更多 >