отключить темный режим в админке django

Проблема

Я установил Django через пару месяцев. Текущая версия - 3.2.4.

Раньше Django-admin был просто облегченным . Текущий Django-admin автоматически переключается на темный или светлый в соответствии с системной темой. Что ж, я не хочу такого поведения. Я хочу, чтобы Django-admin был легкой темой независимо от системной темы. Я не использую стороннюю тему для Django-admin .


Что я пробовал?

Согласно одному из комментариев в этом ответе,

Я решил прокомментировать раздел «@media (prefers-color-scheme: dark)» в /static/admin/css/base.css. Не уверен, что это хорошее решение, но самое быстрое.

Я попытался прокомментировать код, как показано здесь, но это не сработало. Я попытался очистить кеш и даже попытался переключить браузер, но ни один из них, похоже, не работает. В браузерах я всегда предпочитаю светлую тему. Как я могу этого добиться? Любая помощь заметна. Заранее спасибо :)


Сведения о системе:

ОС: Fedora 5.11.12-300.fc34.x86_64

Python-Verion: 3.9.5

4 ответа

Решение

Так что в основном есть 2 способа добиться этого. Вы можете использовать кого угодно, что вам подходит.

1-й способ:

Самый быстрый способ - зайти в настройки вашей ОС и сменить тему с темной на светлую .

Если вы используете Linux, вам может понадобиться gnome-tweaks для переключения между темами.


2-й способ:

Допустим, вы используете виртуальную среду с именем venv. Теперь перейдите в следующий каталог

Venv / Lib / сайты-пакеты / django / contrib / admin / static / admin / css / base.css

Прокомментируйте или удалите весь код. Это выглядело бы примерно так.

      @media (prefers-color-scheme: dark) {
  :root {
      ...
      ...
}

Теперь, если вы также выполнили python manage.py collectstatic и предположим, что ваше статическое имя папки static / . Прокомментируйте весь код prefers-color-scheme: dark из следующего файла тоже.

/static/admin/css/base.css


Примечание. Иногда браузер сохраняет файлы CSS в кэш-памяти. Чтобы перезагрузить все файлы CSS, перезагрузите страницу администратора с помощью Ctrl+ Shift+ R.

Начиная с версии 4.1 Django, правильное решение, по-видимому, переопределяет блок вadmin/site.htmlшаблон с пустым содержимым:

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

Это удаляет ссылки CSS, характерные для темного режима, со страницы.

Задокументировано здесь .

Принятый ответ исправляет это только для текущего пользователя. Решение, которое исправило бы это для всех пользователей сайта, было бы аналогичным, но потребовало бы копирования base.css на ваш static/cssкаталог и редактировать его там.

В качестве альтернативы (и это то, что я сделал), просто pip install django-light и добавьте его в свой INSTALLED_APPSкак раз перед django.contrib.admin

К сожалению, на данный момент нет переключателя для отключения этого поведения (django 3.2). чтобы была только светлая тема, вы должны удалить весь блок @media (prefers-color-scheme: dark) код из django/contrib/admin/static/admin/css/base.cssфайл. или вы можете отключить prefers-color-scheme: darkиз параметров рендеринга вашего браузера. инструкции для хрома описаны здесь

Другие вопросы по тегам