处理已弃用的`adminmedia`模板标签和{%admin_media_prefix%}的适当方法

Cal*_*eng 23 django django-1.5

从django 1.5开始,https://docs.djangoproject.com/en/1.5/releases/1.5/#iscellaneous

模板标签库adminmedia仅包含已弃用的模板标签{%admin_media_prefix%},已被删除.尝试使用{%load adminmedia%}加载它将失败.如果您的模板仍包含该行,则必须将其删除.

那么替换遗留库中的代码以及仍然使用{% load adminmedia %}和加载css的遗留项目的适当方法是什么: -

<link rel="stylesheet" type="text/css" href="{% load adminmedia %}{% admin_media_prefix %}css/login.css">
Run Code Online (Sandbox Code Playgroud)

Ant*_*zov 23

从Django 1.3开始,您可以使用django.contrib.staticfiles应用程序.

确保您的INSTALLED_APPS中包含django.contrib.staticfiles,并在settings.py中指定了STATIC_ROOT和STATIC_URL选项.

然后运行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">
Run Code Online (Sandbox Code Playgroud)

要么

{% load staticfiles %}
<link href="{% static 'admin/css/login.css' %}" rel="stylesheet">
Run Code Online (Sandbox Code Playgroud)


Noa*_*lke 5

我只是复制了里面的内容base.css

{% load admin_static %}
Run Code Online (Sandbox Code Playgroud)

进而

<link href="{% static 'admin/css/base.css' %}" rel="stylesheet">
Run Code Online (Sandbox Code Playgroud)

(替换base.css为您需要的任何内容,就像login.css您的情况一样)

确保您django.contrib.staticfilesINSTALLED_APPS.

(我不需要按照 Anton 之前的建议进行配置STATIC_ROOT和运行manage.py collectstatic