Django 템플릿 내에서 인덱스로 목록 항목을 참조합니까?


107

이것은 간단 할 수 있지만 주위를 둘러 보았지만 답을 찾을 수 없었습니다. Django 템플릿의 목록에서 단일 항목을 참조하는 가장 좋은 방법은 무엇입니까?

{{ data[0] }}, 템플릿 언어 내에서 해당 작업을 어떻게 수행 합니까?

감사.

답변:


184

처럼 보입니다 {{ data.0 }}. 변수 및 조회를 참조하십시오 .


47
성가신 것은 내가 말할 수 없다는 것 입니다. 속성 이름이 아닌 인덱스 값이있는 변수는 {{ data.foo }}어디에 있습니까 foo?
Mike DeSimone 2011 년

1
맞춤 태그를 만들고 싶다면 더 많은 일을 할 수 있습니다. 여기서 우리는 내장 된 것들로 작업하고 있습니다.
Mike DeSimone 2015

링크가 더 이상 작동하지 않는,이 하나를 시도해보십시오 : docs.djangoproject.com/en/1.10/ref/templates/api/...을
Speccy

76

더 나은 방법 : 커스텀 템플릿 필터 : 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 }}

테스트를 거쳐 잘 작동합니다 ^ _ ^


1
템플릿 태그 애플리케이션을 배우는 가장 간단한 설명 중 하나!
vanguard69

5
이것은 훌륭했습니다! 하지만 {{List | index : x}} 형식을 사용하면 일반적으로 점을 사용하는 값에 어떻게 액세스합니까? {{(List | index : x) .name}}은 분명히 작동하지 않습니다. 감사합니다!
JTFouquier

내가 찾던 바로 그것. 감사합니다!
Grant Bartel 2017

나는 내 원하는 값의 인덱스의 확실하지 않다있는 배열이{% for id in article_details.heading.contents.article_ids %} {% if id.type == 'DOI' %} {{ article_details.heading.contents.article_ids.forloop.counter0.value }} {% endif %} {% endfor %}
아킨 환

목록 (일치)을 반복하고 있는데 색인 (counter0)을 사용하려는 또 다른 목록이 있지만 {{matchTeamEmblems.forloop.counter0.homeTeamID}}를 시도했지만 작동하지 않습니다. matchTeamEmblems는 목록입니다. 내 상징에 대한 URL (정적 ..)을 구축하는 simple_tag에서 생성하지만 액세스 할 수 없습니다
kaya

24

{{ data.0 }} 작동해야합니다.

하자가 당신이 쓴 말 data.obj장고 시도를 data.obj하고 data.obj(). 작동하지 않으면 시도합니다 data["obj"]. 귀하의 경우에는 data[0]같이 쓸 수있다 {{ data.0 }}. 하지만 data[0]보기 를 가져 와서 별도의 변수로 보내는 것이 좋습니다 .


1

@ jennifer06262016, django Queryset 내부의 개체를 반환하기 위해 다른 필터를 확실히 추가 할 수 있습니다.

@register.filter 
def get_item(Queryset):
    return Queryset.your_item_key

이 경우 템플릿에 {{Queryset | index : x | get_item}}과 같은 것을 입력하여 사전 개체에 액세스합니다. 그것은 나를 위해 작동합니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.