1

Django のバージョンに応じて異なるファイルで管理テンプレートを上書きする方法はありますか?

admin/index.hmlこれを実現するために、Django admin テンプレートからコピーしました: Django admin, hide a modelですが、Django のさまざまなバージョンでそのテンプレートに変更があり、ページが壊れることがあります (特にADMIN_MEDIA_PREFIXDjango 1.4 での非推奨)。

Django のバージョンが異なる多くのサーバーに自分のサイトをインストールしたいのですが、バージョンを自動的に認識する単一の統合コードを使用します。それは可能ですか?

Django のドキュメントを確認しましたが、これについては何も見つかりませんでした。

4

1 に答える 1

2

クラスには、ModelAdminサブクラスで指定できるさまざまなテンプレート設定があります。Django 1.3django.contrib.admin.optionsでは (271 行目):

add_form_template = None
change_form_template = None
change_list_template = None
delete_confirmation_template = None
delete_selected_confirmation_template = None
object_history_template = None

同様に、AdminSiteさまざまなテンプレート設定があります ( django.contrib.admin.sites35 行目):

index_template = None
app_index_template = None
login_template = None
logout_template = None
password_change_template = None
password_change_done_template = None

サブクラスのこれらをオーバーライドするか、コード内の中央の場所 (__init__.pyファイルなど) で指定できます。例えば:

from django.contrib.admin.sites import AdminSite
AdminSite.index_template = '...'

その後、現在の Django バージョンに基づいてテンプレートを変更できます。これらすべての変数が以前の Django 管理コードに存在するかどうかを確認していないため、以前の Django バージョンでコードがどのように見えるかを確認する必要がある場合があります。

于 2012-06-20T19:48:39.047 に答える