Django - Wie Tupel-Entpacken in einer Vorlage für 'Schleife'

In meinem views.py ich Baue eine Liste von zwei-Tupeln, wobei das zweite Element im Tupel ist eine weitere Liste, wie diese:

[ Product_Type_1, [ product_1, product_2 ],
  Product_Type_2, [ product_3, product_4 ]]

In plain old Python, ich könnte iteration der Liste wie diese:

for product_type, products in list:
    print product_type
    for product in products:
        print product

Ich kann nicht scheinen, um die gleiche Sache in meinem Django-template:

{% for product_type, products in product_list %}
    print product_type
    {% for product in products %}
        print product
    {% endfor %}
{% endfor %}

Ich bekomme diese Fehlermeldung von Django:

Gefangen eine exception während rendering: zip-argument #2 muss der support iteration

Natürlich, es gibt einige HTML-markup in der Vorlage, nicht die print-Anweisung. Ist ein Tupel entpacken nicht unterstützt in der Django-template-Sprache? Oder bin ich da etwa falsch? Alles was ich versuche zu tun, ist zeigen eine einfache Hierarchie von Objekten - es gibt verschiedene Produkt-Typen, die jeweils mit mehreren Produkten (in models.py Produkt hat einen foreign key auf Product_type, eine einfache eins-zu-viele-Beziehung).

Natürlich, ich bin Recht neu für Django, damit würde jede Eingabe geschätzt werden.

Kommentar zu dem Problem
Sie sprechen von Tupeln, aber deine Frage enthält nur Listen. Sie sind verschiedene Dinge in python. Kommentarautor: Harley Holcombe
Eigentlich haben Sie zwei-Tupel. Schauen Sie genau auf Ihrer Liste haben, haben Sie 4 Elemente der Liste. Als Jonny Buchanan festgestellt, müssen Sie dies tun,: [ [Product_Type_1, [ product_1, product_2 ], ], [Product_Type_2, [ product_3, product_4 ], ], ], um eine Liste version von zwei-Tupeln. Kommentarautor: MontyThreeCard

InformationsquelleAutor der Frage Chris Lawlor | 2008-11-07

Schreibe einen Kommentar