有人可以向我解释为什么我的 Django 管理主题是黑暗的吗?

k3v*_*v1n 11 python django pythonanywhere

我在 pythonanywhere 上托管我的小项目,在我托管它之后我检查它是否正常工作,当我单击 django 管理员时,我的 django 管理员的主题是黑色的,当我尝试在我的本地主机上运行时,主题是白色的,所以我试图仔细检查我的静态 URL,我认为它很好,顺便说一句,这是我的管理员静态 URL 静态 URL:/static/admin,静态目录:/home/k3v1nSocialProject/.virtualenvs/myprojenv/lib/python3.8/站点包/django/contrib/admin/static/admin. 有人可以向我解释发生了什么,为什么我的 django 管理主题是黑暗的?

这是 django admin 深色主题的实际照片

Nik*_*kix 12

django 3.2开始,我们可以调整管理主题。忽略深色主题的最快方法是:

在模板文件夹中创建admin文件夹,然后创建文件base.html

templates/admin/base.html
Run Code Online (Sandbox Code Playgroud)

将此代码复制到 base.html 中

{% extends 'admin/base.html' %}

{% block extrahead %}{{ block.super }}
<style>
/* VARIABLE DEFINITIONS */
:root {
  --primary: #79aec8;
  --secondary: #417690;
  --accent: #f5dd5d;
  --primary-fg: #fff;

  --body-fg: #333;
  --body-bg: #fff;
  --body-quiet-color: #666;
  --body-loud-color: #000;

  --header-color: #ffc;
  --header-branding-color: var(--accent);
  --header-bg: var(--secondary);
  --header-link-color: var(--primary-fg);

  --breadcrumbs-fg: #c4dce8;
  --breadcrumbs-link-fg: var(--body-bg);
  --breadcrumbs-bg: var(--primary);

  --link-fg: #447e9b;
  --link-hover-color: #036;
  --link-selected-fg: #5b80b2;

  --hairline-color: #e8e8e8;
  --border-color: #ccc;

  --error-fg: #ba2121;

  --message-success-bg: #dfd;
  --message-warning-bg: #ffc;
  --message-error-bg: #ffefef;

  --darkened-bg: #f8f8f8; /* A bit darker than --body-bg */
  --selected-bg: #e4e4e4; /* E.g. selected table cells */
  --selected-row: #ffc;

  --button-fg: #fff;
  --button-bg: var(--primary);
  --button-hover-bg: #609ab6;
  --default-button-bg: var(--secondary);
  --default-button-hover-bg: #205067;
  --close-button-bg: #888; /* Previously #bbb, contrast 1.92 */
  --close-button-hover-bg: #747474;
  --delete-button-bg: #ba2121;
  --delete-button-hover-bg: #a41515;

  --object-tools-fg: var(--button-fg);
  --object-tools-bg: var(--close-button-bg);
  --object-tools-hover-bg: var(--close-button-hover-bg);
}


</style>
{% endblock %}
Run Code Online (Sandbox Code Playgroud)

现在你应该恢复原来的颜色了。

  • 请注意,从 django 4.1(2022 版)开始,这些样式已移至它们自己的样式表中。对于 django 4.1+,要关闭深色模式样式,您需要做的就是添加“{% block dark-mode-vars %}{% endblock %}”。这样,加载暗模式样式表的行将不会被包含在内。 (9认同)

Iai*_*ton 11

作为 Django 3.2 版本的一部分,管理员现在拥有一个基于首选颜色方案媒体查询应用的深色主题。发行说明

管理员现在支持主题,并包含根据浏览器设置启用的深色主题。有关更多详细信息,请参阅主题支持。


jAC*_*jAC 7

对于那些想知道在哪里放置上面 Adam 响应中的覆盖数据的人来说,这取决于您的 TEMPLATES DIRS 在设置文件中分配的位置。例如:

设置.py

TEMPLATES = [
    {
        'BACKEND': 'django.template.backends.django.DjangoTemplates',
        'DIRS': [(os.path.join(BASE_DIR, 'templates')),], # <- Template path to put the html file
        'APP_DIRS': True,
        'OPTIONS': {
            'context_processors': [
                'django.template.context_processors.debug',
                'django.template.context_processors.request',
                'django.contrib.auth.context_processors.auth',
                'django.contrib.messages.context_processors.messages',
            ],
        },
    },
]
Run Code Online (Sandbox Code Playgroud)

请注意 DIRS 目录。这将转换为与我的 manage.py 文件处于同一级别的模板文件夹。

在该模板文件夹中,我有另一个名为 admin 的文件夹和一个名为 base 的 html 文件。所以它看起来像这样:\projectname\templates\admin\base.html

然后在 base.html 文件中,我有 Adam 在文档主题支持中提到的代码

{% extends 'admin/base.html' %}
    
{% block extrahead %}{{ block.super }}
<style>
    :root {
        --primary: #9774d5;
        --secondary: #785cab;
        --link-fg: #7c449b;
        --link-selected-fg: #8f5bb2;
        --body-fg: #333;
        --body-bg: #fff;
        --body-quiet-color: #666;
        --body-loud-color: #000;
        --darkened-bg: #f8f8f8; /* A bit darker than --body-bg */
        --selected-bg: #e4e4e4; /* E.g. selected table cells */
        --selected-row: #ffc;
    }

</style>
{% endblock %}
Run Code Online (Sandbox Code Playgroud)

现在这应该对你有用。如果您在此处使用这些确切的设置,它将是一个带有紫色的浅色主题。然后你就可以相应地进行。