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.
InformationsquelleAutor der Frage Chris Lawlor | 2008-11-07
Du musst angemeldet sein, um einen Kommentar abzugeben.
wäre es am besten, wenn Sie erstellen Sie Ihre Daten wie {beachten Sie die '(' und ')' können ausgetauscht werden für die '[' und ']' repectively, einer, der für Tupel, Listen}
haben und die Vorlage dazu:
den Weg Tupel/Listen sind ausgedruckt in for-Schleifen basiert auf dem Artikel von der Liste zurückgegeben iterator.
in jeder iteration nur ein Element zurückgegeben wurde. das erste mal um die Schleife, Product_Type_1, die zweite Ihrer Liste der Produkte...
InformationsquelleAutor der Antwort Jake
Anderen Weg ist wie folgt.
Wenn man eine Liste von Tupeln sagen
dann kann man entpacken Sie diese Liste in der template-Datei in der folgenden Art und Weise.
In meinem Fall hatte ich eine Liste von Tupeln, die die URL, den Titel und die Zusammenfassung eines Dokuments.
InformationsquelleAutor der Antwort Ashwin Rao
Müssen Sie es so:
Vergessen Sie nicht, die variable Elemente in der Wörterbuch-Daten
InformationsquelleAutor der Antwort
Senden Sie einfach die Vorlage, die eine Liste von Produktarten und tun Sie etwas wie:
Es ist schon eine kleine Weile so, ich kann mich nicht erinnern, was genau der syntax ist, lassen Sie mich wissen, ob das funktioniert. Überprüfen Sie die Dokumentation.
InformationsquelleAutor der Antwort Harley Holcombe
Wenn Sie eine Feste Nummer in Ihrem Tupel, können Sie auch nur eine Indizierung nutzen. Ich brauchte, um zu mischen, ein Wörterbuch und die Werte waren Tupeln, also Tat ich dies:
In der Ansicht:
In der Vorlage:
InformationsquelleAutor der Antwort famousfilm