我想做以下事情:
{% if appnav %}
<hr />
<div id="appnav">
<ul class="tabs">
{% block appnav %}{% endblock %}
</ul>
</div>
{% endif %}
...但是,测试继承链中模板当前使用的块似乎不起作用。
还有其他条件可以做到这一点吗?
模板语言并不能准确提供您正在寻找的内容。子模板可以调用父块{{ block.super }}
,但父模板不能引用子模板。
您最好的选择可能是编写自定义模板标签。模板手册中有两个部分需要查看。
First, 解析直到另一个块标签 http://docs.djangoproject.com/en/dev/howto/custom-template-tags/#parsing-until-another-block-tag。这将为您提供如何解析的基础知识。
Second, 解析直到另一个块标签并保存内容 http://docs.djangoproject.com/en/dev/howto/custom-template-tags/#parsing-until-another-block-tag-and-saving-contents。通过将块标签放置在自定义标签内,您可以检测内容并根据需要对其进行包装。这应该可行,因为我相信内部块标签将首先被解析。如果这不起作用,请对 django 提供的现有块模板标记进行子类化以实现您的特殊魔法。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)