2011-10-19 23 views
3

管理用テンプレートを上書きするのは、テンプレートディレクトリにadminというフォルダを作成し、上書きしたいテンプレートファイルをコピーするのと同じくらい簡単です。私は単に管理者のスタイルシートを使いたいと思うので、私は静的ファイルフォルダにadminというフォルダを作成し、css/base.cssを入れました。テンプレートソリューションとは異なり、これは機能していないようです。Djangoで特定の管理用CSSファイルを上書きする

django.contrib.adminの個別のCSSファイルを上書きする方法は、テンプレートを上書きするのと同じ方法ですか?あなたがcssファイルを上書きする最適な解決策は何ですか?私は自分のプロジェクトにすべての管理メディアファイルをコピーし、管理者の静的なディレクトリ

+0

管理者のすべてのページまたは特定の変更リストまたはモデルのCSSを上書きしますか? –

答えて

2

I'm looking for a solution short of copying all the admin media files into my project and changing admin's static directory

私は代替が本当に存在しているとは思わないの変更の溶液短い探しています。あなたは、サーバーがどのような場合には

python manage.py runserver --adminmedia=./myadminmedia 

のように、adminmediaコマンドライン引数を渡す起動しているときは、本番サーバー上でそれを実行すると、管理者のメディアから提供されなければならず、新しいディレクトリにメディアファイルをコピーして、この新しいパスを指すことができる優れた静的サービングサーバーです。ドキュメントから

参考:https://docs.djangoproject.com/en/1.3/ref/django-admin/#django-admin-option---adminmedia

+0

'manage.py:エラー:そのようなオプションはありません:--adminmedia' – Hubro

+0

また' /usr/local/lib/python2.6/dist-packages/django/bin/django-admin.py:error:そのようなオプションはありません: --adminmedia' – Hubro

+0

これで '--aminmedia'の契約は**全く**動かなかったのですが、とにかく開発用にApacheを設定してしまったので、この答えが最も近いものになりました。 – Hubro

0

おそらく、あなたのurls.pyファイルをハックし、他の人が開発モードで(Djangoのディレクトリから提供されている間、ローカルフォルダから提供されるように、単一のメディアURLを指すことができます)。

10

私はそれを達成するためにやっていることは、このようなbase_site.htmlテンプレートを上書きすることです。私はそれが優先されますので、それは、最後にロードされていることを確認するblockbotsの代わりextraheadでCSSを入れ

{% block blockbots %} 
<link rel="stylesheet" type="text/css" href="/media/css/my_admin.css" /> 
{{ block.super }} 
{% endblock %} 

他のすべてのCSS。

+2

最近のバージョンのdjangoでは、代わりに 'extrastyle'ブロックを使います。 –

関連する問題