Django 템플릿에서 키로 사전 액세스
내 보기에서 템플릿으로 사전을 넘기고 있습니다.그렇게{"key1":"value1","key2":"value2"}
키를 통해 루핑됩니다. 값 쌍은 괜찮지만 특정 키에서 뷰에 직접 액세스하여 우아한 솔루션을 찾을 수 없습니다."key1"
예를 들어 bu json.disc["key1"]와 같이 입력합니다.몇 가지 if/then 문장을 사용할 수 있지만, 직접 사용하는 것이 더 낫습니다. 방법이 있습니까?
다음은 html 템플릿의 루프 코드입니다.
{% for key, value in json.items %}
<li>{{key}} - {{value}}</li>
{% endfor %}
Django 템플릿 언어는 다음과 같은 사전 키 검색을 지원합니다.
{{ json.key1 }}
템플릿 언어가 표시할 방법을 제공하지 않습니다.json[key]
,어디에key
는 변수입니다.이 Stack Overflow 질문에 대한 답변에서 제시된 대로 템플릿필터를 작성할 수 있습니다.
@Alasdair에서 알 수 있듯이 템플릿필터를 사용할 수 있습니다.고객님의 고객명templatetags
디렉토리, 다음 파일을 만듭니다.dict_key.py
:
from django.template.defaultfilters import register
@register.filter(name='dict_key')
def dict_key(d, k):
'''Returns the given key from a dictionary.'''
return d[k]
그런 다음 HTML에서 다음과 같이 쓸 수 있습니다.
{% for k in json.items %}
<li>{{ k }} - {{ json.items|dict_key:k }}</li>
{% endfor %}
예를 들어, 아래 사전을 보내려면dict = {'name':'myname','number':'mynumber'}
뷰:return render(request, self.template_name, {'dict': dict})
값을 html 템플릿으로 렌더링하려면:<p>{{ dict.name }}</p>
인쇄하다'myname'
이 문제를 해결하려면 다음과 같은 방법을 시도해 보십시오.
def get_context_data(self, **kwargs):
context['cart'] = []
cart = Cart()
cart.name = book.name
cart.author = book.author.name
cart.publisher = book.publisher.name
cart.price = 123
cart.discount = 12
cart.total = 100
context['cart'].append(cart)
return context
class Cart(object):
"""
Cart Template class
This is a magic class, having attributes
name, author, publisher, price, discount, total, image
You can add other attributes on the fly
"""
pass
By this way you can access your cart something like this:
{% for item in cart %}
<div class="jumbotron">
<div>
<img src="{{item.image}}" />
<div class="book_name"> <b>{{item.name}}</b></div>
<div class="book_by"><i>{{item.author}}</i></div>
<span>Rs. {{item.price}}</span> <i>{{item.discount}}% OFF </i>
<b>Rs. {{item.total}}</b>
{% endfor %}
언급URL : https://stackoverflow.com/questions/19745091/accessing-dictionary-by-key-in-django-template
'source' 카테고리의 다른 글
SQL Server에서 외부 키를 작성하려면 어떻게 해야 합니까? (0) | 2023.04.07 |
---|---|
SQL Server에서 상수 1 또는 0으로 비트 암시 (0) | 2023.04.07 |
Spring Boot에서 '로그아웃' 기능 구현 (0) | 2023.04.02 |
Oracle SQL Developer를 사용하여 데이터를 내보내는 방법 (0) | 2023.04.02 |
스프링 부트 시 모든 데이터베이스 관련 자동 구성 사용 안 함 (0) | 2023.04.02 |