有没有一种方法来构建带有组件的页面

时间:2020-09-03 14:37:02

标签: django django-templates

我对使用django模板的extendsinclude的概念很熟悉。

但是,我正在尝试使用组件构建页面(这更多地与“ include”方法有关)。不幸的是,页面上的某些元素应添加到页面标题(例如样式表)中,而某些元素应添加到页面末尾(例如脚本)。

是否可以在包含的文件中声明块(例如{% block extraheaders %}<link...>{% endblock %}),以便将其放置在页面的正确区域中?

1 个答案:

答案 0 :(得分:0)

也许您正在寻找以下设置:

<!-- base.html -->
<html>
    <head>
        {% block css %}
            <link href="/css/bootstrap.css">
            <link href="/css/base.css"> 
        {% endblock %}
    </head>
    <body>
        {% block content %}{% endblock %}

        {% block js %}
            <script src="/js/jquery.js"></script>
            <script src="/js/bootstrap.js"></script>
            <script src="/js/base.js"></script>
        {% endblock %}
    </body>
</html>
{% extends base %}

{% block css %}
    {{ block.super }}
    <link href="/css/home-page.css" />
{% endblock %}

{% block content %}
    <h1>Hello, World!</h1>
{% endblock %}

{% block js %}
    {{ block.super }}
    <link href="/js/home-page.js" />
{% endblock %}

...主要要点是,我们可以使用{{ block.super }}通过inheritance将特定资源放入父模板的块中。