Maison  >  Article  >  développement back-end  >  Comment puis-je remplacer et étendre de manière responsable les modèles d’administration Django de base ?

Comment puis-je remplacer et étendre de manière responsable les modèles d’administration Django de base ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-11-09 18:39:02819parcourir

How can I Responsibly Override and Extend Basic Django Admin Templates?

Remplacer et étendre de manière responsable les modèles d'administration Django de base

Extendre les modèles d'administration Django tout en les remplaçant peut être une tâche ardue, surtout si vous utilisez le chargeur de modèles app_directories. Cependant, avec la bonne approche, vous pouvez modifier de manière transparente des éléments spécifiques du modèle sans interférer avec la structure et le comportement global.

En 2011, une solution a émergé sous la forme d'un chargeur de modèle d'extraits de Django. En vous permettant d'étendre des modèles dans des applications spécifiques, ce chargeur élimine le besoin de copie et d'extension manuelles. Voici un 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 %}

Cet extrait étend le modèle d'index de l'administrateur Django, en ajoutant des liens supplémentaires à la barre latérale tout en préservant la structure du modèle d'origine.

De plus, les versions 1.11 et supérieures de Django offrent le Fonctionnalité d'extension de modèle de vues basées sur les classes Django. Cela vous permet de créer des hiérarchies de modèles personnalisées en utilisant les méthodes extend_context et get_context_data dans vos vues basées sur les classes.

Pour des informations à jour sur le remplacement et l'extension des modèles, reportez-vous à la documentation officielle de Django pour votre domaine spécifique. Version Django.

En adoptant ces techniques, vous pouvez modifier en toute confiance vos modèles d'administration Django sans compromettre leur fonctionnalité ni introduire des duplication.

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