일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- 마라마라빔
- Bellman-Ford
- 그리디알고리즘
- django
- MyPlaylist
- codetree
- 데이터베이스
- 종합설계
- 코드트리
- minimum spanning tree
- Planned
- SQL
- DP
- programmers
- Kruskal
- BFS
- 모각코
- 파이썬
- 최소스패닝트리
- B대면노래방
- 백트래킹
- 백준
- 장고
- 프로그래머스
- 알고리즘
- 소프트웨어공학
- 함밥
- 동적계획법
- 실습
- DFS
- Today
- Total
Leta Learns
Planned | 220526 본문
#여행지 확인 페이지에 일자 별로 여행지 띄우기
전날 chk_day 리스트에 여행 일자별로 여행지를 구분해주는 작업을 하였다.
이때 여행일자를 마지막 인덱스([-1])에 넣어주었었는데 장고 템플릿으로 html에 띄울 때는 파이썬 문법처럼 인덱싱을 하니 안 먹히더라.. 어찌보면 당연함. ㅋㅋㅋㅋ
{% for place in chk_day %}
<h3>{{place[-1]}}일차</h3><br>
{% endfor %}
이렇게 하니 안 먹혔다... 구글링 해보니 장고 템플릿에서 리스트 변수를 인덱싱해서 띄우려면
place.1 이런식으로 해야 한다고 한다. []를 사용해서 인덱싱을 하는 게 아니라 .을 사용해서 하는 것이었다.
place.-1을 했는데... 안 되더라고.
그래서 아예 리스트에서 여행 일자를 2차원 배열인 chk_day의 각 원소의 0번째 인덱스에 넣어주었다.
def checktravel(request, pk):
travel = get_object_or_404(models.Travel, pk=pk)
lodging = models.Lodging.objects.get(travel=pk)
places = []
for p in models.Place.objects.filter(travel=pk):
places.append(p)
count_date = (travel.end_date - travel.start_date).days + 1
chk_day = [[] for _ in range(count_date)]
for i in places:
chk_day[i.day-1].append(i)
#################
for i in range(len(chk_day)):
chk_day[i].insert(0, i+1) #이렇게
#################
return render(
request,
"travels/checktravel.html",
{"travel": travel, "lodging": lodging, "places": places, "chk_day": chk_day},
)
print(chk_day) 해서 확인해보면 각 리스트의 0번째에 day인 숫자가 들어가 있는 걸 확인할 수 있다.
이렇게 한 후 checktravel.html에서 place.0을 띄우도록 for문을 작성하였다.
{% for place in chk_day %}
<h3>{{place.0}}일차</h3><br>
{% endfor %}
서버 실행해보면
여행일자 잘 뜬다.
그리고 checktravel.html에서 이제 각 여행일자에 해당하는 여행 장소를 띄워주면 된다.
{% for place in chk_day %}
<h3>{{place.0}}일차</h3><br>
{% for p in places %}
{% if p.day == place.0 %}
<h4>{{p.name}}</h4><br>
{% endif %}
{% endfor %}
{% endfor %}
(위 코드에서 places는 views에서 받아온 여행장소 객체들을 의미한다).
이렇게 하면 ~~
정보를 다 띄웠습니다~~~ 신난다.
#경로 확인 페이지에 일자 별로 여행지 띄우기
여행지 확인 페이지에 띄울 때 해주었던 작업들을 경로 확인 페이지에도 적용하였다.
def checkpath에 chk_day 리스트를 만들어서 checkpath.html을 띄울 때 장고 템플릿을 사용해서 해당 데이터를 띄워주었다. 코드는 같으니 생략.
#여행지 수정
그리고 수정을 오늘도 시도했는데 말이죠.. ㅎㅎ..
createtravel이랑 비슷한 형식일 것 같아서 비슷하게 해봤는데 안 된다.
내일 해야지...
'HUFS > 종합설계 (캡스톤디자인)' 카테고리의 다른 글
Planned | 220604 (0) | 2022.06.04 |
---|---|
Planned | 220603 (0) | 2022.06.04 |
Planned | 220525 (0) | 2022.05.26 |
Planned | 220522 (0) | 2022.05.22 |
Planned | 220518 (0) | 2022.05.19 |