擅长:python、mysql、java
<p>主要的原因是你用不同的html从视图传递上下文。在</p>
<p>在扩展其他html时,包含或扩展的html将无法访问在模板中传递的上下文,因此需要重写模板中的特定块</p>
<p>可以使用以下模板:</p>
<p><strong>基本.html</strong></p>
<pre><code>{% block navbar %} base {% endblock %}
{% block body %} base {% endblock %}
</code></pre>
<p>现在,如果从视图呈现<code>home.html</code>,它应该是:</p>
<p><strong>主页.html</strong></p>
^{pr2}$
<p>因此,如果您使用模板<code>home.html</code>传递上下文,则需要重写navbar才能使用context</p>
<p>此外,您还可以创建另一个html并在模板中包括:</p>
<p><strong>导航栏.html</strong></p>
<pre><code>{% for foo in subjectType %}
<li class="nav-item">
<a class="nav-link" href="{% url "type" foo.type_name %}">{{ foo.type_name }}</a>
</li>
{% endfor %}
</code></pre>
<p><strong>主页.html</strong></p>
<pre><code>{% extends 'base.html' %}
<! the blocks you override here only replaced >
{% block navbar %}
{% include 'navbar.html' %}
{% endblock %}
</code></pre>