Héritage de templates

généré par les views

a marqué ce sujet comme résolu.

Bonjour, Je fais un petit blog pour m'exercer sur Django et je suis face à un petit problème,
Je fais hérité mes views de mon blog sur une template de base,
Et je souhaite charger des views (: qui génère des mini-templates) dans la template de base

Càd, Ma template de base comporte un menu principal en dur, je souhaite donc le rendre dynamique en créant une app et le charger à chaque fois dans ma template de base. Comment une template peut-elle charger une view (Qui elle même charge une template) ?

Salut,

Si j'ai bien compris, tu veux créer ton menu dynamiquement, de la même manière que ZdS pour les tags les plus utilisés ?

+0 -0

En faite, j'ai pris l'exemple d'un menu mais ça aurait pu être un truc du style "Les 5 derniers articles" ou autres, je cherche à savoir comment faire pour qu'une template de base charge une view et y inclure la template généré par la view dans la tmp de base

+0 -0

Tu as donc trois templates :

  1. Ta template de base (par exemple, ton en-tête et ton pied de page)
  2. La template héritant de celle de base (par exemple, ta page d'accueil)
  3. La template générant le module (par exemple, ton menu)

Entre 1 et 2, tu as une relation d'héritage. Entre 1 et 3 (ou 2 et 3), une relation d'inclusion.

Il te suffit donc simplement, dans la vue retournant la template 2, de remplir le contexte pour que 3 s'affiche correctement. S'il faut faire ça sur plusieurs vues (à priori, ton menu s'affiche sur toutes tes pages), tu peux factoriser le code remplissant le contexte pour le menu avec des décorateurs.

+0 -0

On n'appelle (ou je ne vois pas de cas immédiat) pas de vue dans un patron.

En revanche, tu peux définir des balises de patron personnalisées dédiés à ce genre d'utilisations avec django.template.Library().inclusion_tag(), je pense que c'est ce que tu recherches.

J'ai réussi à obtenir un résultat satisfaisant avec l'utilisation d'une templateTags,
Mais c'est encore un peu confus pour moi.
je vais d'abord aller voir les notions avancées de Python,
car je n'ai aucune idée de ce qu'est un décorateur/contexte, je reviendrai plus tard pour ce sujet.
Merci pour vos réponses :)

Connectez-vous pour pouvoir poster un message.
Connexion

Pas encore membre ?

Créez un compte en une minute pour profiter pleinement de toutes les fonctionnalités de Zeste de Savoir. Ici, tout est gratuit et sans publicité.
Créer un compte