Django管理站点导航侧边栏混乱了。

12

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

输入图像描述

我也在服务器上执行了pip install -r requirements.txt,但结果不同。它的侧边栏出现了问题。

输入图像描述

我尝试通过这个答案来移除侧边栏,但没有移除成功。

.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 存储库


你添加了哪个新的包?如果你指的是升级了Django,那么侧边栏是在Django 3.1中添加的。那么我的问题是,你运行了 collectstatic 命令吗?(有可能一些CSS文件也会被缓存,请尝试使用 CTRL + F5 进行硬刷新) - Abdul Aziz Barkat
@AbdulAzizBarkat 我在我的线上运行了 collectstatic 命令。我也进行了强制刷新。但它仍然是相同的。 - Prosy Arceno
@EPaul 我试过了,但它也不起作用。 - Prosy Arceno
@ProsyArceno,您能否提供requirements.txt的内容?此外,在尝试该答案之前,是否添加了任何自定义CSS? - Nagaraj Tantri
@NagarajTantri 是的,在隐身模式下也会出现这种情况。 - Prosy Arceno
显示剩余11条评论
3个回答

15

看到这个侧边栏是由Django 3.1添加的,它可以被移除

要移除它,您必须在admin.pyurls.py中添加以下代码,因为您正在使用管理员站点,所以应该在管理员站点中添加以下代码。

from django.contrib import admin

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

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

请告诉我是否起作用


3
高效!加一分,因为展示了完整的示例,包括放置代码的位置。 - benzkji
FYI, admin.autodiscover() 不需要。 - elad silver

15
首先,这个导航栏是由 Django 3.1+ 添加的,而不是任何其他第三方包。
Django 3.X admin showing all models in a new navbar 复制并粘贴,
引用:
发行说明中,
引用:
管理员现在在更大的屏幕上有侧边栏,以便更轻松地导航。它默认启用,但可以通过使用自定义的AdminSite并将 AdminSite.enable_nav_sidebar 设置为False来禁用。
所以,这是Django 3.1中新增的一个功能,可以通过设置AdminSite.enable_nav_sidebar = False来删除它(参见如何自定义AdminSite)。

如何修复不规则样式?

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

如果这对您没有用,请检查您的浏览器缓存是否有问题。

如果您使用的是Chrome,请执行以下步骤:

  1. 进入管理页面
  2. Ctrl + Shift + i并选择Network选项卡,然后勾选禁用缓存
  3. 刷新页面 enter image description here

4
这个值得获得更多的赞,比目前的数量要多很多很多。 - Dfranc3373

1
我通过删除静态目录,然后执行collect static命令,最后强制刷新浏览器解决了这个问题。这是由Django 3升级到4引起的。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接