也许我会以错误的方式解决这个问题......但我正在尝试做的是通过我所在的页面更改左侧导航。 base.html中的左侧导航在整个过程中都很明显,但是一旦用户在forums.html(扩展base.html)上,我想要左侧导航更改。
base.html文件:
{% if not no_left_bar %}
<div class="container">
<div class="row">
<!-- Left Side Bar -->
<nav>
original base.html nav goes here
</nav>
<!-- Some condition that goes here/ When forums.html -->
<nav>
forums.html( extends base.html ) nav goes here
</nav>
</div>
</div>
{% endif %}
我不知道是否必须通过基本上下文传递它。我很感谢帮助和任何想法/建议。
答案 0 :(得分:1)
django {% block %}
模板标记允许您定义可由子模板覆盖的内容块。尝试这样的事情:
<强> base.html文件强>
<div class="container">
<div class="row">
{% block nav %}
<nav>
<!-- original base.html nav goes here -->
</nav>
{% endblock %}
</div>
</div>
然后在 forums.html
中{% extends "base.html" %}
{% block nav %}
<nav>
<!-- new forums.html nav goes here -->
</nav>
{% endblock %}
输出看起来像
<div class="container">
<div class="row">
<nav>
<!-- new forums.html nav goes here -->
</nav>
</div>
</div>
此处的文档:https://docs.djangoproject.com/en/dev/topics/templates/#template-inheritance