En mi views.py, estoy construyendo una lista de dos tuplas, donde el segundo elemento de la tupla es otra lista, como esta:Django - Cómo hacer tuple desempacando en un bucle de plantilla 'for'
[ Product_Type_1, [ product_1, product_2 ],
Product_Type_2, [ product_3, product_4 ]]
en la antigua llanura de Python, pude iteración la lista como esta:
for product_type, products in list:
print product_type
for product in products:
print product
me parece que no puede hacer lo mismo en mi plantilla de Django:
{% for product_type, products in product_list %}
print product_type
{% for product in products %}
print product
{% endfor %}
{% endfor %}
me sale este error de Django:
detectó una excepción al intentar mostrar: Código postal argumento # 2 debe apoyar iteración
Por supuesto, hay algo de marcado HTML en la plantilla, no imprimir declaraciones. ¿No se admite el desempaquetado de tuplas en el lenguaje de plantillas de Django? ¿O estoy yendo sobre esto de la manera incorrecta? Todo lo que intento hacer es mostrar una jerarquía simple de objetos: hay varios tipos de productos, cada uno con varios productos (en models.py, Product tiene una clave externa para Product_type, una relación simple de uno a muchos).
Obviamente, soy bastante nuevo en Django, por lo que cualquier contribución sería apreciada.
Usted habla de tuplas, pero su pregunta contiene solo listas Son cosas diferentes en Python. –
En realidad, no tiene dos tuplas. Mire cuidadosamente su lista, tiene 4 elementos de la lista. Como se ha señalado Jonny Buchanan, que tiene que hacer esto: [[Product_Type_1, [product_1, product_2],], [Product_Type_2, [product_3, product_4],],] para obtener una versión lista de-dos tuplas. – MontyThreeCard