Соответствующий способ обработки устаревших tempadatetag adminandia и {% admin_media_prefix%}
Начиная с django 1.5, https://docs.djangoproject.com/en/1.5/releases/1.5/#miscellaneous
Библиотека шаблонов тегов adminmedia, в которой содержится только устаревший тег шаблона {% admin_media_prefix%} был удален. Попытка загрузить его с помощью {% load adminmedia%} не удастся. Если ваш шаблоны по-прежнему содержат эту строку, которую вы должны удалить.
Итак, что подходит для заменить код в старых библиотеках и моих старых проектах, которые по-прежнему используют {% load adminmedia %}
и загружают css, например: -
<link rel="stylesheet" type="text/css" href="{% load adminmedia %}{% admin_media_prefix %}css/login.css">
?
Ответы
Ответ 1
С Django 1.3 вы можете использовать приложение django.contrib.staticfiles.
Убедитесь, что django.contrib.staticfiles включен в ваш INSTALLED_APPS, а параметры STATIC_ROOT и STATIC_URL указаны в параметрах settings.py.
Затем запустите команду manage.py collectstatic
, и статические файлы всех приложений будут собраны в папке STATIC_ROOT.
В шаблонах вы можете использовать контекстную переменную {{ STATIC_URL }}
(убедитесь, что django.core.context_processors.static включен в TEMPLATE_CONTEXT_PROCESSORS) или тег шаблона {% static %}
.
<link href="{{ STATIC_URL }}admin/css/login.css" rel="stylesheet">
или
{% load staticfiles %}
<link href="{% static 'admin/css/login.css' %}" rel="stylesheet">
Ответ 2
Я просто скопировал, что в base.css
:
{% load admin_static %}
а затем
<link href="{% static 'admin/css/base.css' %}" rel="stylesheet">
(замените base.css
тем, что вам нужно, например login.css
в вашем случае)
Убедитесь, что у вас есть django.contrib.staticfiles
в INSTALLED_APPS
.
(мне не нужно было настраивать STATIC_ROOT
и запускать manage.py collectstatic
, как было предложено ранее Антоном)