如何在自定义 Django 管理模板中添加左侧边栏

How to add left sidebar in custom django admin template

我为 Django 管理创建了一个自定义页面,文件名为 server.html

{% extends "admin/base_site.html" %}

{% block content %}
<h1>Server management</h1>

{% if status == 200 and message %}

<ul class="messagelist">
    <li class="success">Response status: <strong>{{ status}}</strong></li>
    <li class="success">{{message}}</li>   
    {% if stdout %}
    <li class="info">{{stdout}}</li>
    {% endif %}
</ul>
{% elif status is not 200 and message %}
    <ul class="messagelist">
        <li class="error">Response status: <strong>{{ status}}</strong></li>
        <li class="error">{{message}}</li>   
        {% if stdout %}
        <li class="error">{{stdout}}</li>
        {% endif %}
    </ul>
{% endif %}
<form method="post" id="menu_form" novalidate="">
    {% csrf_token %}
    <div>
      <fieldset class="module aligned ">
        
            <div class="form-row field-parent_menu">
                
                    <div>
                            <label for="id_parent_menu">Server action:</label>
                            
                                <div class="related-widget-wrapper">
                                    <select name="server_action" id="server_action">
                                        <option value="" selected="">---------</option>
                                        <option value="status">Status of the Server</option>
                                        <option value="start">Start the Server</option>
                                        <option value="stop">Stop the Server</option>
                                        <option value="restart">Restart the Server</option>
                                
                                    </select>
                                </div>
                            
                               
                        
                    </div>
                
            </div>
        
        </fieldset>   
    
    
        <div class="submit-row">
    
            <input type="submit" style="float: left;" value="Submit" class="default" name="_submit">

    
        </div>
    </div>
</form>
   
{% endblock %}

我的base_site.html看起来像这样

{% extends 'admin/base.html' %}
{% load i18n static %}
{% block title %}{% trans "My admin" %}{% endblock %}

{% block branding %}
<div class="3a-image-header"> 
     <img src="{% static 'images/admin-logo.svg' %}">
</div>
<div class="3a-text-header"> 
     <h1 id="site-name">{% trans 'Admin Dashboard' %}</h1>
 </div>
{% endblock %}

{% block extrastyle %}{{ block.super }}
<link rel="stylesheet" type="text/css" href='{% static "css/admin-extra.css" %}'/>

{% endblock %}
{% block extrahead %}
    {{ block.super }}
     <script src="https://code.jquery.com/jquery-3.6.0.min.js" integrity="sha256-/xUj+3OJU5yExlq6GSYGSHk7tPXikynS7ogEvDej/m4=" crossorigin="anonymous"></script>
     {%now 'U' as version %}
     <script src="{% static 'js/admin-custom.js'%}?v={{version}}"></script>
{% endblock %}
{% load i18n %}
<button class="sticky toggle-nav-sidebar" id="toggle-nav-sidebar" aria-label="{% translate 'Toggle navigation' %}"></button>
<nav class="sticky" id="nav-sidebar">
  {% include 'admin/app_list.html' with app_list=available_apps show_changelinks=False %}
</nav>

但是在server.html的url里面没有显示左侧边栏,怎么会显示,以便每个页面看起来都是相同的管理面板。

目前是这样显示的,没有左侧边栏

我修复了 Admin Model class

中缺少默认上下文数据的问题
class ServerManagementModelAdmin(admin.ModelAdmin):
    model = ServerManagementModel

    def get_urls(self):
        view_name = '{}_{}_changelist'.format(
            self.model._meta.app_label, self.model._meta.model_name)
        return [
            path('manage-server/', self.my_custom_view, name=view_name),
        ]
    
    def my_custom_view(self, request):
        #context = {}
        context = dict(
           # Include common variables for rendering the admin template.
           self.admin_site.each_context(request), # side nav was not loading because this was not added.
           # Anything else you want in the context...
           #key=value,
        )