adminのオーバーライド2
以前書いたdjangoでadminをオーバーライドする方法がかなりひどい方法だとわかったのでもう一度書くことにした。
いろいろ調べたのだけど
http://code.djangoproject.com/wiki/ExtendingAdminTemplates
に載っているやりかたが非常に簡単。
例えば自分のサイトが
となっていたら以下のようにtemplates のところに admin_copies ディレクトリを作り、そこに change_list.html とかをオリジナルのものからコピーしてくる。
そして mysite/templates/admin/change_list.html は admin_copies のものをextends してオーバーライドする。
例えば以下のように
また以下のようにコピーの替わりにソフトリンクを張っても同じことが可能
djangoのインストールディレクトリが固定されている場合はこういう方法もいいかもしれない(別環境持っていったら動かないとかのトラブルもおきそうだけど)。
いろいろ調べたのだけど
http://code.djangoproject.com/wiki/ExtendingAdminTemplates
に載っているやりかたが非常に簡単。
例えば自分のサイトが
+ mysite
+ admin
+ polls
+ template
+ admin
+ change_list.html
となっていたら以下のようにtemplates のところに admin_copies ディレクトリを作り、そこに change_list.html とかをオリジナルのものからコピーしてくる。
+ mysite
+ admin
+ polls
+ templates
+ admin
+ change_list.html
+ admin_copies
+ change_list.html
そして mysite/templates/admin/change_list.html は admin_copies のものをextends してオーバーライドする。
例えば以下のように
{% extends "admin_copies/change_list.html" %}
{% load adminmedia admin_list i18n %}
{% block search %} < div > Insert your change list message here and there... < /div > {% search_form cl %}{% endblock %}
また以下のようにコピーの替わりにソフトリンクを張っても同じことが可能
ln -s /PATH-TO-DJANGO/django/contrib/admin/templates/admin/change_list.html templates/admin_copies/change_list.html
djangoのインストールディレクトリが固定されている場合はこういう方法もいいかもしれない(別環境持っていったら動かないとかのトラブルもおきそうだけど)。
1 Comments:
ここにさらに詳しく解説されている方がいました。
http://tech.triax.jp/index.php?Django
Post a Comment
<< Home