テンプレート ローダーをオーバーライドして Django 管理者テンプレートを拡張およびオーバーライドする
Django 管理者テンプレートを置き換えずに拡張およびオーバーライドするという課題は、これまでよくありました。開発者の間では懸念が広がっています。このトピックに関する以前の議論にもかかわらず、この問題は、app_directories テンプレート ローダーを使用するプロジェクトで依然として蔓延しています。
回避策の 1 つは、管理テンプレートを複製し、コピーから拡張することですが、これにより複雑さとメンテナンスのオーバーヘッドが追加されます。このプロセスを簡素化するために、開発者が特定のアプリ内の任意のテンプレートを拡張できるカスタム テンプレート ローダーが開発されました。
オーバーライド テンプレート ローダーの実装
管理テンプレート (例: admin/index.html) を使用すると、開発者はアプリのテンプレート ディレクトリに同じ名前で独自のテンプレートを作成し、テンプレートの先頭に次の行を含めることができます:
{% extends "admin:admin/index.html" %}
Withinこの拡張テンプレートを使用すると、開発者はブロックを定義して、基本テンプレートの特定の部分をオーバーライドできます。たとえば、サイドバーに追加のリンクを追加するには、次のブロックを作成できます:
{% block sidebar %} {{block.super}} <div> <h1>Extra links</h1> <a href="/admin/extra/">My extra link</a> </div> {% endblock %}
Django での問題に対処する
最新および以前の時点Django の LTS バージョン (3.2、2.2、1.11) では、app_directories テンプレート ローダーを使用した管理テンプレートのオーバーライドと拡張が文書化された問題のままです。ただし、これが Django の将来のバージョンで対処されるかどうかは不明です。
以上がDjango 管理者テンプレートを置換せずに拡張およびオーバーライドするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。