views에서 title_list, startTime_list, endTime_list 이렇게 세 종류의 list를 넘겨준다.
title의 n번째, startTime의 n번째, endTime의 n번째 원소는 짝이 되어 한가지 일정이 된다.
{%for startTime in startTime_list%}
{{startTime}}
{{%end for%}
{%for endTime in endTime_list%}
{{endTime}}
{{%end for%}
{%for title in title_list%}
{{title}}
{{%end for%}
templates에서 이렇게 사용하게 될 경우 짝인 것끼리 보여줄 수 없게 된다.
c# 코딩을 할 때는
for(int i=0;i<title_list.count;i++)
{
print(title_list[i]+ ":" +startTime_list[i]+ ":" +endTime_list[i])
}
for each문이 아닌 for문을 돌려서 모든 list에서 같은 인덱스끼리 묶어서 출력할 수 있다.
template에서 이처럼 index를 사용하여 나타낼 수 있나 찾아보니
#views
from django import template
register = template.Library()
@register.filter
def index(sequence, position):
return sequence[position]
#templates
{% for item in iterable1 %}
{{ iterable2|index:forloop.counter0 }}
{% endfor %}
forloop.counter를 사용하여 할 수 있다고 하는데 나는 잘 안됐다.
#views
schedule_list=zip(startTime,endTime,titles)
#templates
{% for startMinute,endMinute,title in schedule_list%}
{{title}} : {{startTime}} : {{endTime}}<br>
{%endfor%}
zip을 이용하여 list를 묶고 multi for loop을 하니 내가 원하는대로 출력이 됐다!