Base/Django

[Django] #14 - Django 게시판 만들기(게시글 수정) - 5

반응형

게시글 수정


이 부분을 진행하려 한다.

 

일단 해당 템플릿이 있는지 확인하고 

 

 

 

 

해당 modify가 있는 템플릿은 read.html이다 

이 modify 부분을 찾고 해당 버튼을 클릭했을 alert가 뜨게끔 연결한다.

 

여기서는 btn-waring이라는 아이디를 가지고 있는 부분을 스크립트로 구현한다.

해당 부분의 class명을 통해 접근해야 되기 때문에 #으로 접근하고 해당 버튼을 클릭했을 때 alert 가 뜨게 한다.

 

Modify를 눌렀을 때 해당 alert이 정상적으로 뜨는 걸 볼 수있다.

 

이제 Modify를 하는 데 있어서 세부적인 로직을 짜 보자. 

이 이벤트를 발생하는 데 있어서 과정은

 

1.url로 보내준다.

2.view로 보내준다.

3.view에서 해당 로직을 만들어준다.

4. 여기서는 modify라는 페이지로 보내준다.

이 modify 페이지로 보내는 데  있어서 해당 글에 대한 정보를 들고 가서 뿌려줘야 한다. 

  1. urls ->  views -> template

 

templates에서 modifyForm이라는 url로 보낸다.

 

 

그다음 url에서 받는 부분을 구현하고 view로 넘긴다.

 

Bbs.objects.get을 통해 해당 user_id에 해당하는 객체를 가져온다.

이렇게 view 단을 구현한다. 여기서 보낸 id 값을 받고 이 아이디를 통해 모델에 접근해 게시판에 대한 객체를 받아온다. 

 

이 받아온 객체를 context에 넣어 modify의 템플릿으로 보낸다.

 

 

그러면 해당 페이지로 이동된다. 

 

값이 뜨는 것은 보내준 context를 

 

 

이렇게 값을 넣어준다.

 

이제 아래 modify 버튼과 cancel 버튼을 구현하자.

 

 

이 부분에 form에 대한 id 값을 정의해주고 

 

 

이렇게 해당 class 값의 버튼이 클릭되었을 때 form의 id 값을 submit 한다는 스크립트를 만든다.

 

 

url 부분을 구현하고 

 

 

해당 view 부분을 구현한다. 

여기서 우리가 받아온 id 값을 request로 받고 그 id 값을 통해 objects를 가져온다.

그다음 그 객체에 우리가 가져온 값을 넣고 save로 저장한다. 그 후 redirect를 통해 bbs_list로 이동하게 끔 만든다.

redirect는 render와 다르게 해당 url로 다시 보낸다. 이 말은 해당 urls.py에 있는 url로 이동을 시켜 해당 url의 있는 view를 타게 끔 만든다. render는 해당 템플릿을 지정을 통해 템플릿으로 바로 보내는 차이가 있다.

반응형