Maison >développement back-end >Tutoriel Python >Comment remplacer et étendre les modèles d'administration Django avec des extensions spécifiques à l'application ?

Comment remplacer et étendre les modèles d'administration Django avec des extensions spécifiques à l'application ?

DDD
DDDoriginal
2024-11-12 02:27:02188parcourir

How to Override and Extend Django Admin Templates with App-Specific Extensions?

Remplacer et étendre les modèles d'administration Django avec des extensions spécifiques à l'application

Remplacer les modèles d'administration Django tout en les étendant peut être un défi lors de l'utilisation des répertoires app_directories chargeur de modèles. Pour résoudre ce problème, envisagez d'utiliser un chargeur de modèles personnalisé qui prend en charge l'extension des modèles à partir d'applications spécifiques.

Solution : chargeur de modèles personnalisés

Un chargeur de modèles personnalisé tel que SmartTemplates vous permet pour spécifier le modèle à étendre dans une application spécifique. Cela vous permet de créer votre propre modèle admin/index.html qui hérite du modèle admin/index.html dans l'application d'administration.

Par exemple :

{% extends "admin:admin/index.html" %}

{% block sidebar %}
    {{ block.super }}
    <div>
        <h1>Extra Links</h1>
        <a href="/admin/extra/">My Extra Link</a>
    </div>
{% endblock %}

Utilisation :

  1. Installez le package SmartTemplates.
  2. Configurez le Paramètre TEMPLATE_LOADERS pour inclure « smart_templates.loader.SmartLoader ».
  3. Placez votre modèle admin/index.html personnalisé dans le répertoire des modèles de votre projet.

Remarques supplémentaires :

  • Django versions 2.2 et ultérieures fournissent prise en charge intégrée de l'héritage de modèles à l'aide de la directive template from, réduisant ainsi le besoin de chargeurs de modèles personnalisés.
  • Reportez-vous à la documentation Django de votre version spécifique pour plus de détails sur le remplacement et l'extension des modèles.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn