2017-01-24 2 views
0
{% for repo in repo_info %} 

{% for branch in branch_info[forloop.counter] %} 
      <li>Branch Name --> {{ branch }}</li>   
{% endfor %} 

{% endfor %} 

branch_info ist eine Liste von Listen.Wie parse Liste von Listen in Django Vorlage?

Es gibt mir Fehler, den Rest auf diese nicht analysieren konnte ---> branch_info [forloop.counter]

Gibt es eine Möglichkeit über die Listenelemente zu analysieren, die auch eine Liste sind?

+1

Bitte erstellen Sie ein [mcve]. Was ist 'branch_info'? Sie können Python nicht innerhalb einer Django-Vorlage verwenden – Sayse

+0

Related: [Using index from iterierte Liste] (http://Stackoverflow.com/q/25245985/1324033) – Sayse

+0

können Sie den Inhalt in 'Repo_info' var teilen? –

Antwort

0

können Sie ein einfaches template tag erstellen, die die Daten in dem gewünschten Index zurück

# some file named my_template_tags.py 
@register.simple_tag 
def at_index(data, index): 
    return data[index] 

Dies wird eine Ausnahme ausgelöst, wenn Sie einen ungültigen Index verwenden. Wenn Sie keine Ausnahme wünschen, müssen Sie sie abfangen und einige gültige Daten zurückgeben.

Es kann auch mit Wörterbüchern verwendet werden, aber Sie geben den Schlüssel anstelle des Index ein.

0

Die meiste Zeit, wenn Ihr Vorlagencode so unordentlich zu sein beginnt, bedeutet dies, dass Ihre Daten nicht die richtige Struktur haben. In diesem Fall scheint es, dass Sie sich auf repo_info und branch_info als "parallele Sequenzen" verlassen (Daten bei branch_info[x] sind für Repo bei repo_info[x]).

Die sauberste Lösung wäre für repo seine eigene Liste von branch zu halten, so können Sie nur über für jeden Repo Iterierte über repo.branchesrepo_info und dann durchlaufen.

Wenn Sie nicht einfach Ihre Daten auf diese Weise strukturieren, ist eine andere Lösung zu zip (oder itertools.izip) repo_info und branch_info Ihrer Ansicht nach zusammen, so dass Sie auf (repo, branches) Tupeln in Ihrer Vorlage laufen kann.