我希望能够在派生的html中多次重复使用相同的块标记。 类似的东西:
base.html
<body>
{% block panel %}
# some basic panel structure inside this block
{% endblock %}
</body>
derived.html
{% extends base.html %}
- 第一个小组
<div class="col">
{% block panel %}
# override things like panel header
{% endblock %}
</div>
- 第二个小组
<div class="col">
{% block panel %}
# again override some panel stuff from base template
{% endblock %}
</div>
无论如何我能在Django中实现这个目标吗?
答案 0 :(得分:0)
不,它会导致模板语法错误。您可以做的最好的事情是在base中包含尽可能多的块标记并重用它们。或者您甚至可以将块循环到基础中。
我还没有对其进行测试,但理论上它应该可行。在您的基础中,创建一个循环块,在下面的示例中,它创建了6个块,阻止content1 ..... content6
{% for i in '123456' %}
{% block content{{i}} %}
Foo
{% endblock content{{i}} %}
{% endfor %}
答案 1 :(得分:0)
在你目前的情况下(假设在单个派生文件中有两个面板),它就像这样 -
<body>
{% block content %}
<!-- all your panels -->
{% endblock %}
</body>
{% extends "base.html" %}
{% block content %}
<div class="col">
<!-- First panel -->
<!-- Second panel -->
</div>
{% endblock %}
该块仅用于减少每个扩展文件特有的冗余工作。所以你只能在任何扩展文件中将它引用到单次。