반응형
Django 템플릿에서 변수를 사전 키로 사용
Django 템플릿의 사전에서 변수를 키로 사용하고 싶습니다. 나는 내 인생에서 그것을하는 방법을 알아낼 수 없습니다. 이름 또는 ID 필드가있는 제품과 제품 ID 색인이있는 등급 사전이있는 경우 다음과 같이 말할 수 있습니다.
{% for product in product_list %}
<h1>{{ ratings.product.id }}</h1>
{% endfor %}
파이썬에서 이것은 간단한
ratings[product.id]
하지만 템플릿에서 작동하도록 만들 수 없습니다. 나는 ... 주사위없이 사용해 보았습니다. 아이디어?
데이터를 미리 준비해야합니다.이 경우 두 개의 튜플 목록을 템플릿에 전달해야합니다.
{% for product, rating in product_list %}
<h1>{{ product.name }}</h1><p>{{ rating }}</p>
{% endfor %}
다음과 같은 템플릿 태그를 만듭니다 (yourproject / templatetags에서).
@register.filter
def keyvalue(dict, key):
return dict[key]
용법:
{{dictionary|keyvalue:key_variable}}
이 아주 더러운 솔루션 :
<div>We need d[{{ k }}]</div>
<div>So here it is:
{% for key, value in d.items %}
{% if k == key %}
{{ value }}
{% endif %}
{% endfor %}
</div>
eviltnan의 답변을 바탕으로 그의 필터는 key
키가 아닌 경우 예외를 발생 dict
시킵니다.
필터는 예외를 발생시키지 않아야하지만 정상적으로 실패 해야합니다 . 이것은 더 강력하고 완전한 대답입니다.
@register.filter
def keyvalue(dict, key):
try:
return dict[key]
except KeyError:
return ''
기본적으로 이것은 dict.get(key, '')
Python 코드에서와 동일하게 수행 되며 더 명시 적이지만 try / except 블록을 포함하지 않으려는 경우에도 그렇게 작성할 수 있습니다.
참조 URL : https://stackoverflow.com/questions/2894365/use-variable-as-dictionary-key-in-django-template
반응형
'code' 카테고리의 다른 글
JavaScript 문자열에서 너비가 0 인 공백 문자 제거 (0) | 2021.01.07 |
---|---|
OpenCV 및 Python을 사용하여 웹캠 피드 표시 (0) | 2021.01.06 |
속성 설정자가 공용인지 확인하는 방법 (0) | 2021.01.06 |
Moq 모의 객체를 생성자에 전달 (0) | 2021.01.06 |
C # RegEx 문자열 추출 (0) | 2021.01.06 |