Mój słownik wygląda następująco (Słownik w słowniku):jak iterować przez słownik w słowniku w szablonie django?
{ '0': { 'chosen_unit', 'koszt': Decimal ('10 0,0000'), 'unit__name_abbrev': u'G "," dostawca_ dostawca ": u" Mięso Steve'a Szafka "," cena ": Dziesiętny (" 5,00 ")," dostawca _address ": u'No \ r \ naddress here", "selected_unit_amount": u ' 2' , 'city_ name': u'Joburg, Central”, 'dostawca _phone_number': u'02299944444' , 'supplier_ internetowej': None, 'dostawca _price_list' u '', 'supplier_ email': u'[email protected] ' 'jednostka _name': u'Gram', 'name': u'Rump Bone '}}
Teraz ja' Właśnie próbuję wyświetlić informacje na moim szablonie, ale walczę. Mój kod dla 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" na moim szablonie?
Próbowałem również:
{% for ingredient in landing_dict.ingredients %}
{{ ingredient.cost }}
{% endfor %}
To nawet nie wyświetla wynik.
Myślałem, że może muszę iteracyjne jeden poziom głębiej więc próbowałem:
{% 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 robię źle?
dzięki za odpowiedź. Mam nazwę receptury o jeden poziom wyżej i nie pokazałem tego poziomu słownika. Dziękuję za Twoją odpowiedź! Nie mogłem użyć 'values [0]' zamiast tego musiałem "value.items' – darren
cool! Cieszę się, że mogę podzielić się tym, co wiedziałem. Kod został wpisany wolną ręką, więc niektóre błędy są nieuniknione. –
Dzięki za wzmianka o '.items'. Dokumentacja 'https: // docs.djangoproject.com/pl/1.4/topics/templates /' podaje przykład, który nie działa, ale nie ma przykładu, który działa. '{% dla k, v na etykiecie%}' daje dziwne wyniki - k jest pierwszym znakiem każdego klawisza, a v jest puste, natomiast '{% dla k w poleceniu%}' zwraca pełny klucz, ale bez możliwości odzyskania wartości (ponieważ 'dict.k' traktuje k jako literalną postać). – Dave