이것은 간단 할 수 있지만 주위를 둘러 보았지만 답을 찾을 수 없었습니다. Django 템플릿의 목록에서 단일 항목을 참조하는 가장 좋은 방법은 무엇입니까?
즉 {{ data[0] }}
, 템플릿 언어 내에서 해당 작업을 어떻게 수행 합니까?
감사.
답변
처럼 보입니다 {{ data.0 }}
. 변수 및 조회를 참조하십시오 .
답변
더 나은 방법 : 커스텀 템플릿 필터 : https://docs.djangoproject.com/en/dev/howto/custom-template-tags/
예를 들어 템플릿에서 my_list [x] 가져 오기 :
템플릿에서
{% load index %}
{{ my_list|index:x }}
templatetags / index.py
from django import template
register = template.Library()
@register.filter
def index(indexable, i):
return indexable[i]
경우에 my_list = [['a','b','c'], ['d','e','f']]
, 당신은 사용할 수 있습니다 {{ my_list|index:x|index:y }}
얻을 템플릿my_list[x][y]
“for”와 잘 작동합니다.
{{ my_list|index:forloop.counter0 }}
테스트를 거쳐 잘 작동합니다 ^ _ ^
답변
{{ data.0 }}
작동해야합니다.
하자가 당신이 쓴 말 data.obj
장고 시도를 data.obj
하고 data.obj()
. 작동하지 않으면 시도합니다 data["obj"]
. 귀하의 경우에는 data[0]
같이 쓸 수있다 {{ data.0 }}
. 하지만 data[0]
보기 를 가져 와서 별도의 변수로 보내는 것이 좋습니다 .
답변
@ jennifer06262016, django Queryset 내부의 개체를 반환하기 위해 다른 필터를 확실히 추가 할 수 있습니다.
@register.filter
def get_item(Queryset):
return Queryset.your_item_key
이 경우 템플릿에 {{Queryset | index : x | get_item}}과 같은 것을 입력하여 사전 개체에 액세스합니다. 그것은 나를 위해 작동합니다.