web-dev-qa-db-ja.com

非推奨の `adminmedia`テンプレートタグと{%admin_media_prefix%}を処理する適切な方法

Django 1.5以降、 https://docs.djangoproject.com/en/1.5/releases/1.5/#miscellaneous

非推奨のテンプレートタグ{%admin_media_prefix%}のみを含むテンプレートタグライブラリadminmediaが削除されました。 {%load adminmedia%}でロードしようとすると失敗します。テンプレートにまだその行が含まれている場合は、それを削除する必要があります。

それで、コードを置き換えるレガシーライブラリと、まだ{% load adminmedia %}を使用し、次のようなcssをロードする私のレガシープロジェクトにある適切な方法は何ですか?-

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

23
Calvin Cheng

Django 1.3なので、 Django.contrib.staticfiles appを使用できます。

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">
23
Anton Morozov

base.cssの内容をコピーしました:

{% load admin_static %}

その後

<link href="{% static 'admin/css/base.css' %}" rel="stylesheet">

base.cssを必要なものに置き換えます(あなたの場合はlogin.cssなど))

Django.contrib.staticfilesINSTALLED_APPSが含まれていることを確認してください。

(Antonが以前に提案したように、STATIC_ROOTを構成してmanage.py collectstaticを実行する必要はありませんでした)

4
Noam Nelke