<dictionary 안의 list 안의 원하는 index 값에 접근하기>
{
'리스트 이름1' : [리스트1],
'리스트 이름2' : [리스트1],
...
}
형식으로 구성된 dict 에서 반복문으로 모든 list의 모든 값을 하나씩 가져오는 방법 정리.
이건 간단하다. {% for key, value in dict.items %}
와 같이 .items
를 이용하면 key와 value를 반복해서 가져올 수 있다. {% endfor %}
전까지 key, value 를 템플릿 변수로 사용 가능하다.
위에서 가져온 value가 list이다. 이 list에서 반복문을 이용해 모든 값을 가져오기 위해서는 템플릿 필터를 이용해야 한다.
템플릿 필터에 전달해야 할 인수는 list, index.
@register.filter
def getvalue(list, index):
return list[index]
이렇게 템플릿 필터를 등록한 뒤 템플릿에서 아래와 같이 사용할 수 있다.
{{ list|getvalue:index }}
이때 index를 순서대로 가져오고 싶다면
forloop.counter
또는 forloop.counter0
를 사용하면 된다. 전자는 index가 1부터 시작하고 후자는 0부터 시작하는데, for loop가 돌 때마다 1씩 증가한다. 다른 언어에서의 i와 같은 역할을 한다.
합쳐보면 {{ list|getvalue:forloop.counter0 }}
와 같은 형태가 된다.