1. 댓글 모델 작성

 이번에는 게시글과 답글에 댓글을 달 수 있는 기능을 추가해보기로 한다.

 

먼저 pybo/models.py 에 Comment 모델을 추가해준다. Answer 모델과 거의 유사하지만 답글의 경우

게시글과 답글 모두에 달릴 수 있기 때문에 외래키로 Question과 Answer의 객체 둘 다 받을 수 있어야 하며

둘 중 한쪽에만 값이 저장될 것이기 때문에 null=True, blank=True 로 설정하여 비워둘 수 있도록 해야한다.

 

모델이 변경되었으니 makemigrations 와 migrate를 수행해준다.

 

 

2. 게시글 댓글

 게시글에 댓글을 등록하는 기능을 추가한다.

 

먼저 question_detail.html 에서 게시글의 수정,삭제 버튼을 표시한 위치 바로 옆에 댓글창을 만들어준다. 이번에는 

댓글의 표시, 작성, 수정, 삭제 기능까지 모두 한번에 구현해보자.

 

댓글창의 디자인을 위해 부트스트랩 적용이후 사용하지 않았던 static 디렉토리의 style.css 를 위와 같이 수정해준다.

 

pybo/urls.py 에 새로 추가한 기능들에 사용된 url 매핑을 추가해준다.

 

pybo/forms.py 에 댓글을 입력받기 위한 CommentForm을 추가해준다.

 

pybo/views.py 에 댓글을 저장하기 위한 comment_create_question 함수를 구현한다.  답글을 저장하는 함수와 매우

유사하기 때문에 어렵지 않게 만들 수 있다.

 

댓글을 작성하기 위한 템플릿 comment_form.html 을 만들어준다.  이 역시 답글 작성을 위해 만들었던

answer_form.html과 거의 다르지않다.

 

댓글 수정을 위한 comment_modify_question 함수를 구현한다. 게시글이나 답글 수정과 거의 동일하다.

 

댓글 삭제를 위한 comment_delete_question 함수를 구현한다. 게시글이나 답글 삭제와 거의 동일하다.

 

이제 pybo에 접속해보면 로그인 상태에서게시글에 댓글을 달 수 있게 된것을 확인할 수 있다.

 

댓글이 정상적으로 등록되는 것을 볼 수 있다.

 

수정이나 삭제 기능도 정상적으로 작동하는 것을 확인할 수 있다.

 

3. 답글 댓글

 이제 답글에도 댓글 기능을 추가해주자.  이 작업은 게시글에 댓글기능을 추가하는것을 거의 그대로 반복하는

것이기 때문에 자세한 설명은 생략하도록 한다.

 

question_detail의 답글 부분에 댓글영역 추가

 

pybo/urls.py 에 url 매핑 추가

 

pybo/views.py 에 댓글 작성, 수정, 삭제 함수를 구현

 

이제 답글에도 댓글기능이 정상적으로 추가된 것을 확인할 수 있다.

'개인 프로젝트 > Django-mysite' 카테고리의 다른 글

#25 추천 기능  (0) 2021.10.10
#24 View 파일 분리하기  (0) 2021.10.10
#22 수정과 삭제  (0) 2021.10.07
#21 글쓴이 표시  (0) 2021.10.04
#20 모델 변경  (0) 2021.10.04

+ Recent posts