장고 템플릿의 사전에서 사전을 통해 반복하는 방법은 무엇입니까?
내 사전은 다음과 같습니다(사전 내 사전).
{'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'ss.sss@ssssss.com',
'unit__name': u'Gram',
'name': u'Rump Bone',
}}
지금은 제 템플릿에 정보를 표시하려고 하지만 어려움을 겪고 있습니다.템플릿에 대한 내 코드는 다음과 같습니다.
{% 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 %}
템플릿에 '0'만 표시됩니까?
저도 해봤어요.
{% for ingredient in landing_dict.ingredients %}
{{ ingredient.cost }}
{% endfor %}
결과가 표시되지도 않습니다.
한 단계 더 깊이 반복해야 할 것 같아서 이렇게 해봤습니다.
{% 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 %}
하지만 아무것도 표시되지 않습니다.
내가 뭘 잘못하고 있는 거지?
데이터가 -라고 가정해 보겠습니다.
data = {'a': [ [1, 2] ], 'b': [ [3, 4] ],'c':[ [5,6]] }
사용할 수 있습니다.data.items()
사전 요소를 가져오는 방법입니다.참고, 장고 템플릿에는 넣지 않습니다.()
또한 일부 사용자가 언급되었습니다.values[0]
작동하지 않습니다. 그렇다면 시도해 보십시오.values.items
.
<table>
<tr>
<td>a</td>
<td>b</td>
<td>c</td>
</tr>
{% for key, values in data.items %}
<tr>
<td>{{key}}</td>
{% for v in values[0] %}
<td>{{v}}</td>
{% endfor %}
</tr>
{% endfor %}
</table>
당신은 이 논리를 당신의 특정한 딕트로 확장할 수 있다고 꽤 확신합니다.
정렬된 순서로 딕트 키를 반복하려면 - 먼저 python에서 정렬한 다음 django 템플릿에서 반복하고 렌더링합니다.
return render_to_response('some_page.html', {'data': sorted(data.items())})
템플릿 파일:
{% for key, value in data %}
<tr>
<td> Key: {{ key }} </td>
<td> Value: {{ value }} </td>
</tr>
{% endfor %}
이 답은 나에게 통하지 않았지만, 나는 스스로 답을 찾았습니다.하지만 아무도 제 질문을 올리지 않았습니다.물어보고 대답하기 귀찮아서 그냥 여기에 두겠습니다.
이는 다음 쿼리를 위한 것입니다.
data = Leaderboard.objects.filter(id=custom_user.id).values(
'value1',
'value2',
'value3')
템플릿:
{% for dictionary in data %}
{% for key, value in dictionary.items %}
<p>{{ key }} : {{ value }}</p>
{% endfor %}
{% endfor %}
변수를 전달하는 경우data
(사전 유형) 템플릿에 대한 컨텍스트로서 코드는 다음과 같아야 합니다.
{% for key, value in data.items %}
<p>{{ key }} : {{ value }}</p>
{% endfor %}
저는 위의 답변들이 저를 올바른 방향으로 인도해주셔서 감사합니다.그들로부터 나는 그것을 더 잘 이해할 수 있는 본보기를 만들었습니다.저는 이 예시가 당신이 이중 사전 작업을 더 쉽게 볼 수 있도록 돕고 더 복잡한 데이터 구조를 가지고 있을 때에도 도움이 되기를 바랍니다.
보기에서.py:
bigd = {}
bigd['home'] = {'a': [1, 2] , 'b': [3, 4] ,'c': [5,6] }
bigd['work'] = {'e': [1, 2] , 'd': [3, 4] ,'f': [5,6] }
context['bigd'] = bigd
template.html에서:
{% for bigkey, bigvalue in bigd.items %}
<b>{{ bigkey }}</b> <br>
{% for key, value in bigvalue.items %}
key:{{ key }} <br>
----values: {{ value.0}}, {{value.1 }}<br>
{% endfor %}
<br>
{% endfor %}
두 번째 사전의 목록은 목록의 인덱스에 의해 액세스됩니다.
브라우저의 결과는 다음과 같습니다.
언급URL : https://stackoverflow.com/questions/8018973/how-to-iterate-through-dictionary-in-a-dictionary-in-django-template
'programing' 카테고리의 다른 글
유형 스크립트로 Angular2 버전을 확인하는 방법 (0) | 2023.07.16 |
---|---|
모델 및 관계 필드의 이름을 바꾸기 위한 장고 마이그레이션 전략 (0) | 2023.07.16 |
ggplot2를 사용하여 만든 그림의 배경색을 변경하는 방법 (0) | 2023.07.16 |
gitstash 실수: gitstash pop과 합병 충돌로 끝났습니다. (0) | 2023.07.16 |
R이 회귀 분석에서 지정된 요인 수준을 기준으로 사용하도록 강제하는 방법은 무엇입니까? (0) | 2023.07.16 |