Django 管理者テンプレートを置換せずに拡張およびオーバーライドするにはどうすればよいですか?

Patricia Arquette
リリース: 2024-11-13 00:00:02
オリジナル
738 人が閲覧しました

How to Extend and Override Django Admin Templates Without Replacing Them?

テンプレート ローダーをオーバーライドして 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 サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート