You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Django项目仪表盘的三个模块中移除导航栏

解决方案

方案一:拆分模板(推荐)

核心思路是把模块的完整页面和内容片段分离,避免重复加载基础模板的导航栏:

  • 新建todolist/_content.html,只保留原todolist/index.html中导航栏之外的核心内容(不需要写{% extends 'base.html' %}和block结构,直接放卡片要展示的内容)。
  • 修改原todolist/index.html,让它继承base.html并引入内容片段:
{% extends 'base.html' %}

{% block title %}Todo List{% endblock %}

{% block content %}
    {% include 'todolist/_content.html' %}
{% endblock %}
  • 修改仪表盘模板,改为引入内容片段而非完整页面:
{% extends 'base.html' %}

{% block title %}Dashboard{% endblock %}

{% block content%}
    <div class="container-fluid">
        <h1 class="fw-bold">Dashboard</h1>
        <div class="row">
            <div class="col-sm-4">
                <div class="card">
                    <div class="card-body" >
                        {% include 'todolist/_content.html' %}
                    </div>
                </div>
            </div>
            <div class="col-sm-4">
                <div class="card">
                    <div class="card-body">
                        {% include 'todolist/_content.html' %}
                    </div>
                </div>
            </div>
            <div class="col-sm-4">
                <div class="card">
                    <div class="card-body">
                        {% include 'todolist/_content.html' %}
                    </div>
                </div>
            </div>
        </div>
    </div>
{% endblock %}

方案二:通过模板变量控制导航栏显示

如果不想拆分模板,可在基础模板中添加条件判断,动态控制导航栏是否显示:

  • 修改base.html,将导航栏放在自定义block中并添加条件:
<!-- base.html -->
{% block navbar %}
    {% if show_navbar != False %}
        <!-- 原导航栏代码 -->
        <nav>...</nav>
    {% endif %}
{% endblock %}
  • 修改仪表盘模板,在include模块时传入show_navbar=False参数:
{% extends 'base.html' %}

{% block title %}Dashboard{% endblock %}

{% block content%}
    <div class="container-fluid">
        <h1 class="fw-bold">Dashboard</h1>
        <div class="row">
            <div class="col-sm-4">
                <div class="card">
                    <div class="card-body" >
                        {% include 'todolist/index.html' with show_navbar=False %}
                    </div>
                </div>
            </div>
            <div class="col-sm-4">
                <div class="card">
                    <div class="card-body">
                        {% include 'todolist/index.html' with show_navbar=False %}
                    </div>
                </div>
            </div>
            <div class="col-sm-4">
                <div class="card">
                    <div class="card-body">
                        {% include 'todolist/index.html' with show_navbar=False %}
                    </div>
                </div>
            </div>
        </div>
    </div>
{% endblock %}

这样模块页面单独访问时导航栏正常显示,被仪表盘include时导航栏会自动隐藏。

内容的提问来源于stack exchange,提问作者Nightdragon22

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.04 01:20:41