在Django管理后台中禁用暗黑模式。

4

问题

几个月前,我安装了Django。当前版本为3.2.4。

以前的 Django-admin 只有明亮模式。当前的 Django-admin 会根据系统主题自动切换为暗色明亮。好吧,我不想要这种行为。我希望 Django-admin 始终使用明亮主题,而不管系统主题如何。 我没有在 Django-admin 中使用第三方主题。


我尝试过什么?

根据这个答案中的一条评论,

我决定注释掉 /static/admin/css/base.css 中的 "@media (prefers-color-scheme: dark)" 部分。不确定这是否是一个好的解决办法,但是是最快的一种。

我尝试按照此处所示的方式注释代码,但不起作用。我尝试清除缓存,甚至尝试切换浏览器,但似乎都没有用。在浏览器中,我总是喜欢使用明亮主题。我该如何实现这一点?任何帮助都将不胜感激。先感谢您 :)


系统详情:

操作系统: Fedora 5.11.12-300.fc34.x86_64

Python 版本: 3.9.5


你想要禁用它是为了自己的体验还是整个应用程序的用户? - Sina
实际上,我想为每个人都做到这一点。但即使只解决我的问题,那也可以。 - ajinzrathod
4个回答

2

从Django 4.1版本开始,正确的解决方案似乎是用空内容覆盖admin/site.html模板中的一个块:

{% block dark-mode-vars %}{% endblock %}

这将从页面中删除特定于暗模式的CSS链接。

此处有记录。


0

第一种方法:最快的方法是进入您的操作系统设置,将主题从暗色更改为亮色。如果您使用的是Linux,您可能需要使用gnome-tweaks来在不同主题之间切换。


第二种方法:

  1. 假设您正在使用名为venv的虚拟环境。现在进入以下目录:venv/Lib/site-packages/django/contrib/admin/static/admin/css/base.css
  2. 注释掉删除所有prefers-color-scheme: dark的代码。它应该看起来像这样。
@media (prefers-color-scheme: dark) {
  :root {
      /* code */
}

现在假设您已经执行了python manage.py collectstatic,并且假设您的静态文件夹名称为static/。请从以下文件中也注释掉prefers-color-scheme: dark的所有代码:/static/admin/css/base.css

注意:有时浏览器会将CSS文件存储在缓存中。为了强制刷新所有的CSS文件,请使用Ctrl + Shift + R强制刷新管理页面。


0

被接受的答案只修复了当前用户的问题。一个可以为网站所有用户修复问题的解决方案类似,但需要将base.css复制到static/css目录并在那里进行编辑。

或者(这就是我所做的),只需pip installdjango-light并将其添加到您的INSTALLED_APPS中,就在django.contrib.admin之前。


0

很不幸,目前没有功能切换来禁用这个行为(Django 3.2)。如果只想使用浅色主题,您应该从 django/contrib/admin/static/admin/css/base.css 文件中删除整个 @media (prefers-color-scheme: dark) 代码块。或者您可以在浏览器渲染选项中禁用 prefers-color-scheme: dark。Chrome 的说明在 此处


1
删除整个代码块不起作用。我在问题中也写了我尝试按照这里所示的注释代码,但不起作用。 我是Firefox用户。无论如何,还是谢谢 :) - ajinzrathod

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