Puis-je créer un modèle de base pour mon projet à partir duquel toutes les applications peuvent puiser? Ou dois-je créer un modèle de base pour chaque application? Et si je voulais qu'ils soient identiques, je les copierais simplement?
Sûr que vous pouvez. Un exemple rapide de base.html
<!DOCTYPE html>
<html>
<head>
<title>My Project</title>
</head>
<body>
{% block content %}{% endblock content %}
</body>
</html>
Et dites que vous avez une application appelée myapp avec une page view.html,
{% extends "base.html" %}
{% block content %}
<h2>Content for My App</h2>
<p>Stuff etc etc.</p>
{% endblock content %}
Prenez le temps de lisez la documentation pour plus d'informations
Oui, vous pouvez absolument le faire. En utilisant les balises de modèle extends
et include
dans vos modèles Django.
Je commence à apprendre Django et j'ai récemment compris cela. Mon code est à Github si vous souhaitez jeter un oeil à la structure des modèles Django pour hériter d'un base.html
puis d'un include
éléments courants tels que la barre de navigation, l'en-tête, le pied de page etc.
Il y a un problème dans la dernière réponse et voici le bon; vous devez avoir Base.html comme ceci:
{% load staticfiles %}
<!DOCTYPE html>
<html>
<head>
<title>My Project</title>
</head>
<body>
{% block content %}{% endblock %}
</body>
</html>
et aussi pour index.html
{% extend "appname/base.html" %}
{% block content %}
<h1>test</h1>
{% endblock %}
Oui, vous pouvez créer un modèle de base pour votre projet que d'autres applications étendront. Vérifiez @Kenny_Shen réponse sur comment.
Je voulais juste ajouter deux notes si vous êtes préoccupé par l'isolation de l'application.
Si vous ne voulez pas que votre application s'appuie sur la convention de dénomination "base.html", vous pouvez injecter le nom réel avec une variable. Consultez: Comment utiliser la variable de gabarit de Django? pour plus de détails,
Vous voudrez peut-être attribuer un autre nom au bloc de modèles d'application, et non au "contenu" pour éviter les conflits avec d'autres applications.