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" %}
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 %}
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!