django plusieurs héritage de template - est-ce le bon style?
Yo
j'ai donc un base.html:
<html>
<body>
<div id="header"> ... </div>
{% block main %}{% endblock %}
<div id="footer"> ... </div>
</body>
</html>
et j'ai aussi une page qui affiche les messages de l'utilisateur:
{% extends base.html %|
{% block main%}
<h1>welcome to yours posts hangout!</h1>
... snazzy code here that shows all the posts ...
{% endblock%}
maintenant, le problème est, peut-être que j'ai une autre page comme ceci:
{% extends base.html %|
{% block main%}
<h1>look at all posts by all users!</h1>
... snazzy code here that shows all the posts by all the users ...
{% endblock%}
parce que nous appartenons tous à mensa, nous pouvons voir que le snazzy code que j'ai est répétée deux fois (pour tautologique plaisir!)
je ne veux pas répéter ce code - je veux dire, si il est va être un souci majeur pour moi, mais sinon je voudrais une page qui a le chic définis dans le code, et puis glisser les petits changements ci-dessus et (éventuellement) ci-dessous.
ma compréhension de modèles est fragile mais - je pense que c'est la façon de faire, est-il mieux/est normalisée?
snazzy.html:
{% extends base.html %|
{% block aboveSnazzy%}
{% endblock %}
... snazzy code here that shows all the posts by all the users ...
{% block belowSnazzy%}
{% endblock %}
{% endblock%}
et puis pour chacune des différentes pièces, je peux avoir:
usersArea.html:
{% extends snazzy.html %|
{% block aboveSnazzy%}
<h1>welcome to yours posts hangout!</h1>
{% endblock %}
{% block belowSnazzy%}
<h1>i didn't think this far ahead in the example</h1>
{% endblock %}
{% endblock%}
etc etc pour les autres pièces aussi!
ok, donc je sais que je peux tout simplement envoyer un paramètre avec un en-tête ou qu'avez-vous - supposons que la aboveSnazzy trucs, je ne sais pas, montrant quelques autres modèle que j'aimerais ou de faire quelque chose de non négligeable. Est ce que j'ai détaillé ci-dessus la "façon" de faire?
cheers!
OriginalL'auteur bharal | 2012-06-02
Vous devez vous connecter pour publier un commentaire.
Yo. 🙂
La réponse dépend de la façon dont beaucoup de modèles ont en commun.
si vos modèles ont beaucoup en commun, elles sont par exemple les pages de certaines sections de votre site, ou tout simplement avoir du très commune de la structure, comme vous l'avez décrit est le meilleur. Faire un autre modèle de base, ajouter des blocs de plus et hériter de la forme. J'ai juste pense que vous devriez utiliser certains noms descriptifs pour bloquer, par exemple
si vos modèles n'ont pas beaucoup en commun, mais les actions de certains des blocs de contenu, c'est une autre situation. Il est difficile de faire la bonne structure d'héritage ici. Ainsi, vous pouvez utiliser { % %} ici: Par exemple, faire un autre template qui affiche les messages (snazzy code qui affiche tous les messages), de dire
_list_posts.html
.Vous pouvez faire un autre modèle qui affiche les messages (snazzy de code qui montre tous les postes), par exemple
_list_posts.html
. Ensuite l'utiliser chez les enfants modèles.Vous pouvez également utiliser l'inclusion de la balise.
Quel chemin choisir? Essayez de répondre à la question: peut (et doit) ces deux modèles ont ancêtre commun? Si oui, rendez-vous pour la première variation, si pas pour le deuxième.
OriginalL'auteur DrTyrsa