nella mia applicazione Django 1.1.1 Ho una funzione nella vista che restituisce al suo modello un intervallo di numeri e un elenco di elenchi di elementi, ad esempio :Utilizzo del valore forloop.counter come indice di lista in un modello 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])
All'interno del modello ho un esterno per ciclo, che contiene anche un altro per il ciclo per visualizzare nell'output contiene delle liste interne di dati in questo modo
...
{% 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 %}
...
Ma Django motore di template non funziona con il valore forloop.counter0
come indice per t elenca (invece lo fa se inserisco manualmente un valore numerico come indice). C'è un modo per far funzionare il loop lista con il valore esterno forloop.counter0
? Grazie in anticipo per l'aiuto :)
Grazie Stefanw, è esattamente quello che stavo cercando di fare, non ho pensato a iterare sulla lista perché nel caso di 'len (data) == 1' (sì, il quello che ho scritto prima non era una buona dichiarazione di python) Dovevo mostrare l'output della lista in un modo diverso. Comunque ora sembra che tutto funzioni, grazie ancora per il tuo aiuto! – Alex
Questo è sicuramente il modo giusto per farlo, ma [qui] (http://stackoverflow.com/a/11784863/456848) è il modo in cui aggiro le "no variabili come nomi di attributi, chiavi del dizionario o indici di elenchi" problema. È inelegante essere sicuri, ma lo fa mentre usa solo tag e filtri integrati. –