我对使用django模板的extends和include的概念很熟悉。
但是,我正在尝试使用组件构建页面(这更多地与“ include”方法有关)。不幸的是,页面上的某些元素应添加到页面标题(例如样式表)中,而某些元素应添加到页面末尾(例如脚本)。
是否可以在包含的文件中声明块(例如{% block extraheaders %}<link...>{% endblock %}
),以便将其放置在页面的正确区域中?
答案 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将特定资源放入父模板的块中。