Bienvenue sur IndexError.

Ici vous pouvez poser des questions sur Python et le Framework Django.

Mais aussi sur les technos front comme React, Angular, Typescript et Javascript en général.

Consultez la FAQ pour améliorer vos chances d'avoir des réponses à vos questions.

Créer une liste et ajouter des éléments depuis un template django

+3 votes

J'aurais besoin de créer une liste dans un template python. Le soucis c'est que j'a besoin d'ajouter les éléments au sein d'une boucle for. Voilà en gros ce que ça donne :

 {% for k, item in out.iteritems %}
     {% selected_hostnames.append(item.hostname) %}
     <input type="hidden" name="hostname_{{ forloop.counter }}" value="{{item.hostname}}" />
 {% endfor %}

Avec selected_hostnames la liste en question. J'ai regarder du coté des filtre et tag mais je vois pas quel type de tag utiliser en fait. Si quelqun a une idée je suis preneur.

demandé 25-Jun-2015 par Takka (238 points)

2 Réponses

+2 votes
 
Meilleure réponse

Est-ce qu'il faut nécessairement que cette liste soir valorisée dans le template ?
Le fait d'affecter des valeurs a des variables dan le template ne me parait pas être une bonne solution a la base.

La vue pourrait générer la liste avec quelque chose du genre

selected_hostnames = [ item.hostname for item in out.values() ]

puis la passer au template. (désavantage : çà implique d'itérer sur la liste dans la vue et dans le template)

répondu 25-Jun-2015 par jc (2,674 points)
sélectionné 26-Jun-2015 par Takka

Je pense que je vais devoir passer par là, ça sera le plus propre, merci bien.

+2 votes

En théorie tu pourrais créer un tag custo pour faire ça, mais je t'invite à ne PAS le faire. Le template ne doit pas servir à la manipulation de donnée. Soit tu fais ça dans ta vue, soit tu fais ça en JS. Mais pas dans le template.

répondu 26-Jun-2015 par Sam (4,980 points)
...