Maison > développement back-end > Tutoriel Python > Comment étendre et remplacer les modèles d'administration Django sans les remplacer ?

Comment étendre et remplacer les modèles d'administration Django sans les remplacer ?

Patricia Arquette
Libérer: 2024-11-13 00:00:02
original
804 Les gens l'ont consulté

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

Extension et remplacement des modèles d'administration Django avec remplacement du chargeur de modèles

Le défi consistant à étendre et remplacer les modèles d'administration Django sans les remplacer est un défi courant inquiétude des développeurs. Malgré les discussions précédentes sur ce sujet, le problème reste répandu pour les projets utilisant le chargeur de modèles app_directories.

Une solution de contournement consiste à dupliquer les modèles d'administration et à étendre les copies, mais cela ajoute de la complexité et des frais de maintenance. Pour simplifier ce processus, un chargeur de modèles personnalisé a été développé qui permet aux développeurs d'étendre n'importe quel modèle au sein d'une application spécifique.

Implémentation du chargeur de modèles de remplacement

Pour étendre un modèle d'administration, par exemple admin/index.html, les développeurs peuvent créer leur propre modèle avec le même nom dans le répertoire des modèles de leur application et inclure la ligne suivante au début du modèle :

{% extends "admin:admin/index.html" %}
Copier après la connexion

Dans Avec ce modèle étendu, les développeurs peuvent définir des blocs pour remplacer des parties spécifiques du modèle de base. Par exemple, pour ajouter des liens supplémentaires à la barre latérale, ils peuvent créer le bloc suivant :

{% block sidebar %}
    {{block.super}}
    <div>
        <h1>Extra links</h1>
        <a href="/admin/extra/">My extra link</a>
    </div>
{% endblock %}
Copier après la connexion

Résoudre le problème dans Django

À partir de la dernière et précédente Dans les versions LTS de Django (3.2, 2.2, 1.11), le remplacement et l'extension des modèles d'administration à l'aide du chargeur de modèles app_directories restent un problème documenté. Cependant, rien n'indique si ce problème sera résolu dans les futures versions de Django.

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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal