Magazine Internet

Récursivité au sein d'un template django

Publié le 11 juillet 2011 par Samuel Martin

Pas de nouveauté fracassante, juste l'exemple d'une syntaxe simple et dépouillée présentant la récursivité du côté des templates. L'exemple présente l'affichage d'une liste de commentaires en cascade. Cf Screenshot. (Valide Django 1.2)

Template parent

Il suffit simplement de déporter l'affichage des commentaires du côté d'un fichier à inclure. Ici on appelle le fichier _comments.html.

Dans comments_list.html

{% include "checklists/workshops/_comments.html" %}

Template enfant

Toute la magie se trouve dans le template à inclure. Ici on appelle continuellement _comments tant qu'il y a des enfants (childrens).

Dans _comments.html

{% if comments %}

{% for comment in comments %}	
	{{ comment.creator.get_full_name }}	
	{{ comment.description }}

	{% with "_comments.html" as filename %}
		{% with comment.get_childrens as comments %}
			{% include filename %}
		{% endwith %}
	{% endwith %}

{% endfor %}

{% endif %}

Liste de commentaires + html + css

Liste des commentaires - Template récursif Django


Retour à La Une de Logo Paperblog

A propos de l’auteur


Samuel Martin 21 partages Voir son profil
Voir son blog

l'auteur n'a pas encore renseigné son compte l'auteur n'a pas encore renseigné son compte

Magazine