관리 메뉴

꿈 많은 사람의 이야기

파이썬 장고 프레임워크를 활용한 todo 게시판 만들기 - 7편. update view 본문

python-django

파이썬 장고 프레임워크를 활용한 todo 게시판 만들기 - 7편. update view

이수진의 블로그 이수진의 블로그 2019. 5. 30. 09:29

완성된 코드는 아래 github 주소에 있습니다!

도움이 되셨다면 좋아요와 깃허브 스타를 눌러주세요! 저에게 있어 큰 힘이 됩니다 ㅠㅠhttps://github.com/lsjsj92/django_todo_app

 

 

지난 포스팅까지 python django 프레임워크를 활용해서 todo 게시판 만들기 detail view와 list view를 만들었습니다.

이제 게시판에 필요한 update(수정)과 delete(삭제)만 남았군요!

이번 포스팅은 게시판 수정(update)를 만들어보겠습니다

바로 시작하죠!

장고에서는 update와 관련한 기능도 제공해줍니다. 그것을 활용할 것입니다

 

먼저 상세보기 페이지에서 수정 키워드를 넣습니다

update를 하기 위하여 todo_board:todo_board_update의 urls.py에 하나를 추가를 해야 하겠죠?

그리고 수정을 하려면 고유 pk값이 필요하기에 list.pk를 넣어줍니다

 

 

해당 url을 받을 수 있도록 update url을 만들어줍니다. 상세보기 페이지 때와 마찬가지로 pk 값을 받을 수 있도록 (?P<pk>[0-9]를 받게 합니다

 

 

django에서는 수정과 관련된 뷰를 제공해줍니다

generic.updateview가 그것입니다. update와 관련된 기능을 제공해주기에 save 기능과 form 데이터를 받아오는 기능이 필요합니다.

왜냐하면 수정할 때 게시판에서 작성한 글을 가지고 와서 update를 해야하기 때문이죠

똑같이 model은 todolist를 받습니다. fields는 title, content, date를 받구요

만약 form이 유효하다면 form_valid 함수를 실행합니다. 그리고 form.save()를 통해 저장하도록 만들어둡니다

그리고 get으로 수정 페이지에 들어간다면(수정 페이지에서 수정완료 버튼을 누른 상태가 아닙니다. 상세보기 -> 수정 버튼을 눌렀을 때 나오는 페이지입니다)

기존에 작성한 내용이 적용되어 있어야겠죠? 그래서 object를 받아오고 get_form_class를 통해 폼을 가져옵니다.

이후 get_context_data를 통해서 context를 만들고 render_to_response를 해주면 그 전에 있던 값이 적용될 것입니다.

 

 

이제 실제 수정을 해보겠습니다

내가 원하는 게시글을 클릭을 합니다

게시판 리스트 중에서 아무거나 클릭!

 

그럼 url이 상세보기 화면으로 바뀝니다.

아까 수정 버튼을 만들었죠? 저 수정을 누릅니다

 

 

그러면 update로 url이 바뀌는 것을 볼 수 있습니다!

또한, 기존에 작성했던 내용이 적용되어 있는 것을 볼 수 있죠

여기서 게시판 내용을 입력하고 수정하면

 

 

업데이트 되었다는 알람과 함께

 

 

수정이 되었을 겁니다

다시 저 게시글 상세보기로 들어가면

 

 

수정이 되어있는 것을 확인할 수 있습니다!

여기까지가 파이썬 장고를 활용해서 todo 게시판 만들기 수정(update) 편이었습니다

다음 포스팅은 삭제(delete)를 구현하겠습니다

0 Comments
댓글쓰기 폼