2012-11-29 52 views
21

從Django中1.5起,https://docs.djangoproject.com/en/1.5/releases/1.5/#miscellaneous適當的方式處理廢棄的`adminmedia` templatetag和{%admin_media_prefix%}

模板標籤庫adminmedia,其中僅包含 棄用模板標籤{%admin_media_prefix%},去掉了。 嘗試使用{%load adminmedia%}加載它將會失敗。如果您的 模板仍包含該行,則必須將其刪除。

那麼什麼是適當的方式取代在傳統圖書館和它仍然使用{% load adminmedia %}並加載CSS像我的遺產項目,發現代碼: -

<link rel="stylesheet" type="text/css" href="{% load adminmedia %}{% admin_media_prefix %}css/login.css"> 

回答

22

由於Django 1.3,您可以使用django.contrib.staticfiles應用程序。

請確保django.contrib.staticfiles包含在您的INSTALLED_APPS中,並且在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"> 

{% load staticfiles %} 
<link href="{% static 'admin/css/login.css' %}" rel="stylesheet"> 
+0

我找對文檔進行STATIC_PATH和看不到任何東西,應該說是STATIC_ROOT? –

+0

@wobbily_col你說的對ST​​ATIC_ROOT是正確的,我已經提交了這個答案的編輯(等待同行評審)。 –

+0

是否將這些文件引入您自己的項目真的是推薦的解決方案?這聽起來像一個黑客。 – knipknap

4

我只是複製什麼在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由安東曾建議)

相關問題