2
Je veux accéder au dernier objet d'un arbre django-mptt. Est-il possible de faire cela à partir d'un template django?Comment obtenir le dernier enfant dans un arbre django-mptt?
Je veux accéder au dernier objet d'un arbre django-mptt. Est-il possible de faire cela à partir d'un template django?Comment obtenir le dernier enfant dans un arbre django-mptt?
En code python, vous pouvez utiliser la méthode get_children. Cela devrait fonctionner:
children = node.get_children()
if children:
last_child = list(children)[-1]
Pour utiliser dans un modèle, vous aurez besoin d'écrire simple étiquette de modèle:
from django import template
register = template.Library()
@register.simple_tag
def last_child(node):
children = node.get_children()
if children:
return list(children)[-1]
else:
return ""
Jetez un oeil à l'Django documentation pour savoir comment intégrer cette balise dans votre projet.
Cela semble très bien, mais j'obtiens cette erreur: Pris une exception lors du rendu: L'indexation négative n'est pas prise en charge. – Hobhouse
Désolé, j'ai oublié de transformer le jeu de requête en liste. Correction –
super, maintenant cela fonctionne! :-) petite note si quelqu'un copie ce code: retour = liste (enfants) [- 1] dans le simple_tag devrait bien sûr être retour liste (enfants) [- 1] – Hobhouse