일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- django
- 마라마라빔
- 그리디알고리즘
- codetree
- 종합설계
- B대면노래방
- 동적계획법
- 함밥
- 프로그래머스
- 모각코
- 코드트리
- 데이터베이스
- BFS
- DFS
- 알고리즘
- MyPlaylist
- Planned
- SQL
- 장고
- 백트래킹
- 최소스패닝트리
- 실습
- 백준
- Bellman-Ford
- minimum spanning tree
- programmers
- DP
- 파이썬
- 소프트웨어공학
- Kruskal
- Today
- Total
Leta Learns
Planned | 220516 본문
#merge, fetch 후 서버 실행
서버 잘 돌아가는 거 확인하고 commit, merge 했는데 다시 돌려보니까 여행지 추가 페이지에서 폼 작성하고 경로 확인 페이지로 넘어갈 때 아래의 에러가 난다.
구글링해보니 로그인 상태에서 해야 하는 일을 비로그인 상태로 진행하기 때문에 생기는 오류라고 한다.
migrations 다 지우고 커밋한 상태에서 미리 켜두었던 서버를 새로고침만 해서 그런 것이었다. (서버 새로고침 전에 이미 로그인하고 여행지 추가 페이지에 들어가 있는 상태였음. <- 여행지 추가 페이지는 로그인 해야만 들어갈 수 있음)
회원가입하고 로그인해서 들어가면 에러 해결.
#경로 저장 함수 구현 (def savepath)
경로 저장하면 db를 업데이트 해주어야 하는 것 같은데 이게 값이 수정되는 게 아니라 같은 값을 재등록해주는 거라서,, 굳이 필요한 기능인가 싶다. 그래서 일단 urls.py, views.py만 수정해서 메인 화면으로 리다이렉트만 해주었다.
#여행지 확인 함수 구현
db에 있는 정보 띄워주면 되는 함수라서 이전 프로젝트에서 만들었던 detail함수 참고하면서 함수를 만들었다.
그리고 이런 에러가 뜬다.
익숙한 에러다. (당연함. 비슷한 함수 구현 중임)
pk 지정을 잘못해준 것 같아서 <a href="{% url 'travels:checktravel' travel.name %}"> 이렇게 바꿨는데 해결되지 않았다.
{% for eachtravel in alltravel %}
<a href="{% url 'travels:checktravel' eachtravel.name %}">
#이하생략
for문 안에 있는 코드라서 travel을 eachtravel로 바꿔서 eachtravel.name으로 바꿔주어 일단 이 에러는 해결했다.
그리고 이런 에러가 났는데,, 음,, 위의 에러가 아직 해결이 안 된 것 같다.
<a href="{% url 'travels:checktravel' eachtravel.id %}">
아 eachtravel.id로 해주어야 한다는 걸 깜빡했다.
수정하고 새로고침하면
넵 잘 뜹니다.
..? 근데 저 여행지 정보를 누르면 여행지 확인 페이지로 가야 하는데
경로 확인 페이지로 이동한다... 왜요.
이유를 알아냈다.
url 설정할 때 checkpath(경로 확인)와 checktravel(여행지 확인)의 path가 같아서 그런 것이었다.
이렇게 checktravel의 url에 mytravel이 선행되도록 추가해주면
checktravel 페이지가 잘 뜬다.
데이터들도 잘 띄워지는지 확인하기 위해서 각 모델의 필드를 하나씩 띄워주었다.
근데 travel의 필드들만 뜨고, lodging과 place는 뜨지 않는다.
views.py에서 lodging과 place의 정보를 받아오는 코드를 수정하면 될 것 같다.
def checktravel(request, pk):
travel = get_object_or_404(models.Travel, pk=pk)
lodging = models.Lodging.objects.get(travel=pk)
# lodging = models.Lodging.objects.filter(travel=pk)
place = models.Place.objects.get(travel=pk)
# place = models.Place.objects.filter(travel=pk).order_by('order')
return render(request, 'travels/checktravel.html', {'travel':travel, 'lodging':lodging, 'place':place})
원래 주석처럼 filter로 받아오려고 했는데 생각해보니 travel을 pk로 주니까 그냥 get으로 받아오면 될 것 같았다.
잘 뜬다.
sdf: 숙소
2: day
ㅇㅇㅇ: 장소명
#checkpath 함수 수정
checktravel 함수를 만들고 나니 checkpath도 수정할 수 있을 것 같았다.
경로 확인 함수도 place의 데이터를 가져올 때 filter를 사용했었기 때문이다.
def checkpath(request, pk):
travel = models.Travel.objects.get(pk=pk)
place = models.Place.objects.get(travel=pk)
return render(request, "travels/checkpath.html", {"travel": travel, "place":place})
checkpath함수도 get으로 바꿔주니 잘 뜬다. ㅎㅎ
'HUFS > 종합설계 (캡스톤디자인)' 카테고리의 다른 글
Planned | 220518 (0) | 2022.05.19 |
---|---|
Planned | 220517 (0) | 2022.05.17 |
Planned | 220513 (0) | 2022.05.14 |
Planned | 220512 (0) | 2022.05.13 |
Planned | 220511 (0) | 2022.05.12 |