Mi diccionario se ve así (Diccionario dentro de un diccionario):
{'0': {
'chosen_unit': <Unit: Kg>,
'cost': Decimal('10.0000'),
'unit__name_abbrev': u'G',
'supplier__supplier': u"Steve's Meat Locker",
'price': Decimal('5.00'),
'supplier__address': u'No\r\naddress here',
'chosen_unit_amount': u'2',
'city__name': u'Joburg, Central',
'supplier__phone_number': u'02299944444',
'supplier__website': None,
'supplier__price_list': u'',
'supplier__email': u'[email protected]',
'unit__name': u'Gram',
'name': u'Rump Bone',
}}
Ahora solo estoy tratando de mostrar la información en mi plantilla pero estoy luchando. Mi código para la plantilla se ve así:
{% if landing_dict.ingredients %}
<hr>
{% for ingredient in landing_dict.ingredients %}
{{ ingredient }}
{% endfor %}
<a href="/">Print {{ landing_dict.recipe_name }}</a>
{% else %}
Please search for an ingredient below
{% endif %}
¿Simplemente me muestra '0' en mi plantilla?
También probé:
{% for ingredient in landing_dict.ingredients %}
{{ ingredient.cost }}
{% endfor %}
Esto ni siquiera muestra un resultado.
Pensé que tal vez necesito iterar un nivel más profundo, así que intenté esto:
{% if landing_dict.ingredients %}
<hr>
{% for ingredient in landing_dict.ingredients %}
{% for field in ingredient %}
{{ field }}
{% endfor %}
{% endfor %}
<a href="/">Print {{ landing_dict.recipe_name }}</a>
{% else %}
Please search for an ingredient below
{% endif %}
Pero esto no muestra nada.
¿Qué estoy haciendo mal?
fuente
values[0]
en su lugar, tuve que hacerlovalues.items
.items
. La documentaciónhttps://docs.djangoproject.com/en/1.4/topics/templates/
da un ejemplo que no funciona, pero ningún ejemplo que sí funcione.{% for k,v in dict %}
da resultados extraños: k es el primer carácter de cada clave y v está en blanco, mientras que{% for k in dict %}
devuelve la clave completa pero sin forma de recuperar valores (ya quedict.k
trata a k como un carácter literal).https://docs.djangoproject.com/en/1.8/ref/templates/builtins/#for
esto, junto con las variables forloop que pueden ser útiles al formatear una lista.values.items
+1Esta respuesta no funcionó para mí, pero encontré la respuesta yo mismo. Sin embargo, nadie ha publicado mi pregunta. Soy demasiado vago para preguntarlo y luego responderlo, así que lo pondré aquí.
Esto es para la siguiente consulta:
En plantilla:
fuente
Si pasa una variable
data
(tipo de diccionario) como contexto a una plantilla, entonces el código debe ser:fuente