#python #css #django #django-admin
#python #css #django #django-admin
Вопрос:
Переопределить шаблоны администратора так же просто, как создать папку admin
в каталоге шаблонов и скопировать в нее любые файлы шаблонов, которые вы хотите переопределить. Однако я просто хочу поиграть с таблицами стилей администратора, поэтому я создал папку admin
в своей папке static files и поместил css/base.css
в нее. В отличие от решения templates, это, похоже, не работает.
Итак, есть ли какой-либо способ переопределить отдельные файлы css так django.contrib.admin
же, как вы можете переопределить шаблоны? Если нет, что было бы лучшим решением для переопределения файлов css? Я ищу решение, не копирующее все медиафайлы администратора в мой проект и изменение статического каталога администратора
Комментарии:
1. Вы хотите перезаписать CSS для всех страниц в admin или только для определенных списков изменений или моделей?
Ответ №1:
Для достижения этой цели я переопределяю base_site.html
шаблон следующим образом:
{% block blockbots %}
<link rel="stylesheet" type="text/css" href="/media/css/my_admin.css" />
{{ block.super }}
{% endblock %}
Я вставил CSS blockbots
вместо extrahead
того, чтобы быть уверенным, что он загружен в конце, поэтому он переопределит все остальные CSS.
Комментарии:
1. В последних версиях django вы можете использовать
extrastyle
блок вместо этого.
Ответ №2:
Я ищу решение, не копирующее все медиафайлы администратора в мой проект и изменение статического каталога администратора
Я не думаю, что действительно есть альтернатива. Вы копируете медиафайлы в новый каталог и при запуске сервера передаете аргумент adminmedia
командной строки, например
python manage.py runserver --adminmedia=./myadminmedia
В любом случае, когда вы запускаете его на рабочем сервере, носитель администратора должен обслуживаться с хорошего статического сервера обслуживания, для которого вы можете указать этот новый путь.
Ссылка из документов: https://docs.djangoproject.com/en/1.3/ref/django-admin/#django-admin-option—adminmedia
Комментарии:
1. Также
/usr/local/lib/python2.6/dist-packages/django/bin/django-admin.py: error: no such option: --adminmedia
2. Хорошо, итак
--aminmedia
, сделка вообще не сработала, но в итоге я все равно просто настроил Apache для разработки, что делает этот ответ самым близким.3. Вот ссылка на —adminmedia: docs.djangoproject.com/en/dev/ref/django-admin /…
Ответ №3:
Вероятно, вы можете взломать свой urls.py файл и укажите только один URL-адрес носителя, который будет обслуживаться из локальной папки, в то время как остальные обслуживаются из каталога Django (в режиме разработки).