django 块不显示

django block not showing

我想向 base.html 添加导航栏、消息和内容,这是正确的做法吗?我还希望配置文件作为导航栏的扩展,因此当您将鼠标悬停在配置文件按钮上时,导航栏配置文件会弹出。现在,我看不到带有块的导航栏,但它可以与 include 一起使用。

base.html

  {% block nav %}'
  {% endblock nav%}
  {% block messages %}
  {% endblock messages %}
  {% block content %}
  {% endblock content %}

navbar.html,我应该在这里使用包含配置文件还是配置文件块?

{% extends 'app/base.html' %}
{% block nav%}
// some more code here..
<li class="nav-item dropdown position-static">
    <a class="nav-link dropdown-toggle" href="#" id="dropdown04" data-toggle="dropdown"
    aria-haspopup="true" aria-expanded="false">Profile</a>
                            <div class="dropdown-menu p-4" aria-labelledby="dropdown04">
                                {% include 'users/profile.html' %}
                            </div>
                        </li>
{% endblock nav%}

messages.html

{% extends 'app/base.html' %}
{% block messages %}

{% if messages %}
{% for message in messages %}
<div class="alert alert-{{ message.tags }}">
    {{ message }}
</div>
<div class="swal2-icon swal2-error swal2-animate-error-icon" style="display: flex;"><span class="swal2-x-mark"><span class="swal2-x-mark-line-left"></span><span class="swal2-x-mark-line-right"></span></span>
</div>
{% endfor %}
{% endif %}

{% endblock messages %}

如果想在模板中声明一个可以被子模板覆盖的编码块,可以使用块标签-

{% block sidebar %}
<ul>
    <li><a href="/">Home</a></li>
    <li><a href="/blog/">Blog</a></li>
</ul>
{% endblock %}

另一方面,如果你想在其他模板中加载一个模板,你应该使用 include 标签。

{% include "nav.html" %}

如果您不想为不同的模板使用不同的导航栏,则不必将 include 标签放在块标签中。所以在你的情况下-

{% include "nav.html" %}

{% block messages %}
{% if messages %}
{% for message in messages %}
<div class="alert alert-{{ message.tags }}">
    {{ message }}
</div>
<div class="swal2-icon swal2-error swal2-animate-error-icon" style="display: flex;"><span class="swal2-x-mark"><span class="swal2-x-mark-line-left"></span><span class="swal2-x-mark-line-right"></span></span>
</div>
{% endfor %}
{% endif %}
{% endblock messages %}

{% block content %}
{% endblock content %}