[django] 장고 템플릿에서 dict, list 반복 접근하기

상교·2022년 9월 6일
0
post-thumbnail

<dictionary 안의 list 안의 원하는 index 값에 접근하기>

{
 '리스트 이름1' : [리스트1],
 '리스트 이름2' : [리스트1],
 ...
}
형식으로 구성된 dict 에서 반복문으로 모든 list의 모든 값을 하나씩 가져오는 방법 정리.

1. dict에서 key, value 가져오기

이건 간단하다. {% for key, value in dict.items %} 와 같이 .items 를 이용하면 key와 value를 반복해서 가져올 수 있다. {% endfor %} 전까지 key, value 를 템플릿 변수로 사용 가능하다.

2. list에서 원하는 index의 값 가져오기 (템플릿 필터 작성)

위에서 가져온 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 }} 와 같은 형태가 된다.

profile
편안함에 안주하지 않는 프론트엔드 개발자입니다.

0개의 댓글