我有一个基本模板(base.html
),如下所示:
<doctype html> etc etc
{% block content %}{% endblock %}
我的网站中的许多其他模板都使用它,但我有一个第三方应用,它附带自己的模板,继承自tp.html
,后者继承自base.html
。这些模板大多都很好但我需要将它们的content
块包装在div中。我可以更改第三方模板以使用sub_content
块并像这样修改tp.html
:
{% extends "base.html" %}
{% block content %}
<div class="third-party-app">
{% block sub_content %}{% endblock %}
</div>
{% endbock %}
但我不想修改第三方应用中的所有模板。
我想要的是与Smarty模板中找到的{$smarty.block.child}
类似的东西,或者实现相同的方法。有什么想法吗?
答案 0 :(得分:2)
您可以像这样使用block.super:
第三方模板:
{% block content %}
<h1>3rd Party Content</h1>
{% endblock %}
你的模板:
{% block content %}
<div class="wrapper">{{ block.super }}</div>
{% endblock content %}
答案 1 :(得分:0)
在base.html中,在{%block content%}的任一侧添加pre_content和post_content块,然后在tp.html中将您的和标记添加到这些块中。略显不雅,但它会起作用,你不必修改所有的模板。