[解決済み] Django の基本的な admin テンプレートを上書きしたり拡張する方法は?
質問
管理用テンプレート(例:admin/index.html)を拡張しつつ、オーバーライドするにはどうすればよいでしょうか? https://docs.djangoproject.com/en/dev/ref/contrib/admin/#overriding-vs-replacing-an-admin-template )?
まず - この質問は以前にも質問され、回答されていることは承知しています(参照 Djangoです。アプリテンプレートのオーバーライドとエクステンション しかし、回答にあるように、app_directoriesテンプレートローダーを使用している場合(ほとんどの場合そうです)、それは直接適用されるものではありません。)
私の現在の回避策は、管理テンプレートから直接拡張するのではなく、コピーを作成してそこから拡張することです。これはとてもうまくいくのですが、本当に混乱しますし、管理者テンプレートが変更されたときに余分な作業が増えてしまいます。
テンプレート用のカスタムextend-tagを考えることもできますが、すでに解決策があるのなら、車輪の再発明はしたくありません。
余談ですが、この問題がDjango自体で解決されるかどうか、誰か知っていますか?
解決方法は?
更新情報 :
あなたの使っている Django のバージョンのドキュメントを読んでください。
https://docs.djangoproject.com/en/1.11/ref/contrib/admin/#admin-overriding-templates https://docs.djangoproject.com/en/2.0/ref/contrib/admin/#admin-overriding-templates https://docs.djangoproject.com/en/3.0/ref/contrib/admin/#admin-overriding-templates
2011年当時のオリジナル回答です。
私も1年半ほど前に同じ問題を抱えたことがありますが、その時に見つけた素敵な テンプレートローダーはdjangosnippets.orgにあります。 を使うと、これが簡単になります。これは、特定のアプリのテンプレートを拡張することで、あなた自身の 管理画面/index.html を拡張し、管理者アプリのadmin/index.html テンプレートを拡張します。こんな感じ。
{% extends "admin:admin/index.html" %}
{% block sidebar %}
{{block.super}}
<div>
<h1>Extra links</h1>
<a href="/admin/extra/">My extra link</a>
</div>
{% endblock %}
このテンプレート・ローダーをどのように使うか、その完全な例を ブログ記事 を作成しました。
関連
-
ピロウズ画像色処理の具体的な活用方法
-
Pythonコンテナのための組み込み汎用関数操作
-
Pythonの学習とデータマイニングのために知っておくべきターミナルコマンドのトップ10
-
[解決済み】お使いのCPUは、このTensorFlowバイナリが使用するようにコンパイルされていない命令をサポートしています。AVX AVX2
-
[解決済み】syntaxError: 'continue' がループ内で適切に使用されていない
-
[解決済み】Flaskのテンプレートが見つからない【重複あり
-
[解決済み] 関数デコレータを作成し、それらを連鎖させるには?
-
[解決済み] Pythonのリストメソッドであるappendとextendの違いは何ですか?
-
[解決済み] 割り当て後にリストが予期せず変更されました。その理由と防止策を教えてください。
-
[解決済み】Djangoでnull=Trueとblank=Trueの違いは何ですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
ピロウズ画像色処理の具体的な活用方法
-
opencvとpillowを用いた顔認証システム(デモあり)
-
ピローによる動的キャプチャ認識のためのPythonサンプルコード
-
Python百行で韓服サークルの画像クロールを実現する
-
Python 入出力と高次代入の基礎知識
-
[解決済み】Pythonスクリプトで「Expected 2D array, got 1D array instead: 」というエラーが発生?
-
[解決済み】socket.error: [Errno 48] アドレスはすでに使用中です。
-
[解決済み】 NameError: グローバル名 'xrange' は Python 3 で定義されていません。
-
[解決済み】Python elifの構文が無効です【終了しました
-
[解決済み】NameError: 名前 'self' が定義されていません。