Mój słownik wygląda następująco (Słownik w słowniku):
{'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',
}}
Teraz próbuję tylko wyświetlić informacje w moim szablonie, ale mam problemy. Mój kod szablonu wygląda następująco:
{% 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 %}
Po prostu pokazuje mi „0” w moim szablonie?
Próbowałem też:
{% for ingredient in landing_dict.ingredients %}
{{ ingredient.cost }}
{% endfor %}
To nawet nie wyświetla wyniku.
Pomyślałem, że być może potrzebuję iteracji o jeden poziom głębiej, więc spróbowałem tego:
{% 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 %}
Ale to nic nie wyświetla.
Co ja robię źle?
źródło
values[0]
zamiast tego musiałemvalues.items
.items
. Dokumentacjahttps://docs.djangoproject.com/en/1.4/topics/templates/
zawiera przykład, który nie działa, ale nie ma przykładu, który działa.{% for k,v in dict %}
daje dziwaczne wyniki - k jest pierwszym znakiem każdego klucza, a v jest puste, podczas gdy{% for k in dict %}
zwraca pełny klucz, ale bez możliwości pobrania wartości (ponieważdict.k
traktuje k jako znak literału).https://docs.djangoproject.com/en/1.8/ref/templates/builtins/#for
tego, wraz ze zmiennymi forloop, które mogą być pomocne podczas formatowania listy.values.items
+1Ta odpowiedź nie zadziałała dla mnie, ale sam znalazłem odpowiedź. Nikt jednak nie opublikował mojego pytania. Jestem zbyt leniwy, by o to zapytać, a następnie odpowiedzieć, więc po prostu wstawię to tutaj.
Dotyczy to następującego zapytania:
W szablonie:
źródło
Jeśli przekazujesz zmienną
data
(typ słownika) jako kontekst do szablonu, kod powinien wyglądać następująco:źródło