django 管理站点导航侧边栏搞砸了

django admin site nav sidebar messed up

我最近向我的项目添加了一个包,然后做了一个 pip freeze > requirements.txt。然后我在我的本地做了 pip install -r requirements.txt,它添加了一个侧边栏。

我也对服务器进行了 pip install -r requirements.txt 操作,但产生了不同的结果。它的侧边栏被搞砸了。

我尝试通过此操作删除侧边栏 answer 但它没有被删除。

.toggle-nav-sidebar {
    z-index: 20;
    left: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 23px;
    width: 23px;
    border: 0;
    border-right: 1px solid var(--hairline-color);
    background-color: var(--body-bg);
    cursor: pointer;
    font-size: 20px;
    color: var(--link-fg);
    padding: 0;
    display: none; /*added*/
}

#nav-sidebar {
    z-index: 15;
    flex: 0 0 275px;
    left: -276px;
    margin-left: -276px;
    border-top: 1px solid transparent;
    border-right: 1px solid var(--hairline-color);
    background-color: var(--body-bg);
    overflow: auto;
    display: none; /*added*/
}

我应该怎么做才能解决这个问题?

如果有任何其他我可以补充的帮助,请尽管询问。

添加 requirements.txt:

asgiref==3.3.4
certifi==2020.12.5
chardet==4.0.0
defusedxml==0.7.1
diff-match-patch==20200713
Django==3.2.3
django-cors-headers==3.7.0
django-filter==2.4.0
django-import-export==2.5.0
django-property-filter==1.1.0
djangorestframework==3.12.4
et-xmlfile==1.0.1
idna==2.10
MarkupPy==1.14
odfpy==1.4.1
openpyxl==3.0.7
python-decouple==3.4
pytz==2019.2
PyYAML==5.4.1
requests==2.25.1
sqlparse==0.3.0
tablib==3.0.0
urllib3==1.26.4
xlrd==2.0.1
xlwt==1.3.0

添加样本github repo:

首先,这个导航栏是由 Django 3.1+ 添加的,而不是由任何其他第 3 部分包添加的。

复制和粘贴

From the release notes,

The admin now has a sidebar on larger screens for easier navigation. It is enabled by default but can be disabled by using a custom AdminSite and setting AdminSite.enable_nav_sidebar to False.

所以,这是 Django 3.1 中添加的功能,可以通过设置删除 AdminSite.enable_nav_sidebar = False(参见 How to customize AdminSite class


如何修复不规则样式?

您不必编辑任何 CSS 或 HTML 文件来修复样式,因为 Django 带有一组新的 CSS 和 HTML, 通常 可以解决问题。 (也就是说,不建议更改样式文件仅此

如果这对您不起作用,可能是因为您的浏览器缓存。

如果您正在使用 Chrome,

  1. 进入管理页面
  2. Ctrl + Shift + i 和 select Network 选项卡然后勾选 Disable Cache
  3. 刷新页面

看到这个侧边栏是 django 3.1 添加的,它是可移动的

要删除它,您必须在 admin.pyurls.py 中添加以下代码,因为您正在与管理员一起工作,您应该在管理站点中添加以下代码

from django.contrib import admin

admin.autodiscover()
admin.site.enable_nav_sidebar = False

autodiscocer():此函数尝试在每个已安装的应用程序中导入管理模块

如果有效请告诉我