Jinja-Schleife verschachtelte Liste erstellt eine leere Ausgabe

Habe ich die af-Liste von dieser Struktur übergeben die Vorlage mit dem Namen bars in Python 3.4:

[{'var': 1.18, 'occurrences': [0.0805, 0.0808, 0.0991, 0.0994, 0.2356], 'name': 'item name'},
 {'var': 2.31, 'occurrences': [1.0859, 1.1121, 1.4826, 1.4829, 1.8126, 1.8791], 'name': 'other name'}]

Ich will, dass es die folgende Ausgabe für jedes Wörterbuch:

% List with names
item 1: item name
item 2: other name

% List with vars
item 1: 1.18
item 2: 2.31

% List with occurences
item 1: 0.0805, 0.0808, 0.0991, 0.0994, 0.2356
item 2: 1.0859, 1.1121, 1.4826, 1.4829, 1.8126, 1.8791

Die ersten beiden sind kein problem, aber ich kann Sie nicht zum Durchlaufen der Liste vorkommen. Ich verwende die folgenden jinja template:

{% for item in bars %}
  item {{ loop.index }}: {{ item.name }}
{% endfor %}

{% for item in bars %}
  item {{ loop.index }}: {{ item.var }}
{% endfor %}

{% for item in bars recursive %}
  {% if item.occurrences %}
    Item {{ loop.index}}: {{ loop(item.occurrences) }}
  {% else %}
    No content
  {% endif %}
{% endfor %}

Dieser gibt diese komische Ausgabe im Dritten Fall:

Item 1:       No content
No content
No content
No content
No content

Item 2:       No content
No content
No content
No content
No content
No content

Dass ist merkwürdig, da es scheint, dass es eine Schleife jedes Element der Liste mit vorkommen, aber es hat die Prüfung nicht bestanden für den Inhalt. Was mache ich falsch?

Edit: Alle drei Antworten wies mich in die richtige Richtung, aber @famousgarkin geben, die die aufwendige und flexible Antwort. Ich landete mit der folgenden Lösung:

{% for item in bars %} 
  Item {{ loop.index }}: {% for occurrence in item.occurrences %} subitem {{ loop.index }}: {{ occurrence }} {% endfor %}
{% endfor %}

Dies ermöglicht es mir, schließen Sie jedes Element in separaten Kontext, das ist, was ich will. Aber da wurde dieses Ziel nicht von Anfang an klar, ich wünschte, ich könnte upvote alle Ihre Antworten. Sorry, aber danke Euch allen für die schnelle Hilfe!!!

InformationsquelleAutor Stenskjaer | 2014-07-20
Schreibe einen Kommentar