dans mon application Django 1.1.1 J'ai une fonction dans la vue qui renvoie à son template une plage de nombres et une liste de listes d'items, par exemple :Utilisation de la valeur forloop.counter comme index de liste dans un template Django
...
data=[[item1 , item2, item3], [item4, item5, item6], [item7, item8, item9]]
return render_to_response('page.html', {'data':data, 'cycle':range(0,len(data)-1])
A l'intérieur du modèle que j'ai un externe pour la boucle, qui contient aussi une autre pour le cycle à afficher dans la sortie contient des listes internes de données de cette manière
...
{% for page in cycle %}
...
<table>
{% for item in data.forloop.counter0 %}
<tr><td>{{item.a}} </td> <td> {{item.b}} ... </td> </tr>
...
</table>
{% endfor %}
{% if not forloop.last %}
< div class="page_break_div" >
{% endif %}
{% endfor %}
...
Mais Django Le moteur de gabarit ne fonctionne pas avec la valeur forloop.counter0
comme index pour t Il liste (à la place, si je mets manuellement une valeur numérique comme index). Est-il un moyen de laisser la boucle de liste fonctionne avec la valeur forloop.counter0
externe? Merci d'avance pour l'aide :)
Merci Stefanw, c'est exactement ce que j'essayais de faire, je ne pensais pas itérer sur la liste parce que dans le cas de 'len (data) == 1' (oui, le celui que j'ai écrit auparavant n'était pas une bonne déclaration en python) J'ai dû montrer la sortie de la liste d'une manière différente. Quoi qu'il en soit, tout semble fonctionner, merci encore pour votre aide! – Alex
C'est certainement la bonne façon de le faire, mais [ici] (http://stackoverflow.com/a/11784863/456848) est comment je contourne le "pas de variables comme noms d'attributs, clés de dictionnaire, ou index de liste" problème. Il est inélégant pour être sûr, mais il le fait en utilisant uniquement des balises et des filtres intégrés. –