* 추가할 기능 구현 (게시판)
- 댓글 수정기능 -> 댓글 삭제 기능
- 조회수 조작 방지 기능
- 게시글 삭제 기능
* 추가할 기능 구현 (인증)
- 소셜 인증
==========================================
댓글 수정말고 댓글 삭제 기능을 넣었다. 댓글 같은 경우 수정할 바에 차라리 지우고 다시 쓰도록 의도하였다.
먼저 작업 들어가기전에 갑자기 아이디어가 떠올라 개선한 점이 있다. 바로 리다이렉트부분이다. 기존 같은 경우 게시글을 수정하거나, 게시글에서 댓글을 작성한 후에 게시글 리스트로 리다이렉트 된다. reverse를 써서 제자리에 오도록 하려했으나 (F5기능) circular import 문제 때문에 구현하지 못했었다.
그런데 그냥 템플릿에 넘겨주면 되지 않나? 라는 생각이 들어 이 부분을 해결하였다.
< render로 변경 >
템플릿을 지정해주고 context 안에 post를 담아서 보내주었다.
< 개선된 게시글 >
이제 이 자리에서 바로 글을 수정해도 이 페이지며, 댓글을 달아도 이 페이지로 남는다.
그런데 이상한 점을 추가적으로 포착했다. 바로 개행이 안된다는 점이다. 위 사진을 보면 분명 내가 Update 마다 줄을 바꿔줘서 넣었는데 개행처리가 안됬다.
이 점에 대해 검색을 해보니 HTML에서 개행을 처리 안해서 그렇다고 한다. 개행을 <br> 로 바꿔주면 된다. 여기서 linebreaksbr 을 사용하면 <br>로 바뀐다고 한다.
< linebreaksbr >
확인해보면 다음과 같다.
< 개행처리 되는 모습 >
이제 본격적으로 구현하고자 하는 기능 구현이다. 먼저 게시글 삭제 기능이다. 이 기능은 직접 구현하지 않고 CBV를 이용하여 구현하였다. 다만 함부로 삭제되면 안되므로 현재 로그인된 사용자가 게시글을 작성한 사람과 같은지 검증하기 위해 filter를 이용하여 검색된 쿼리만 삭제하도록 구현하였다.
< PostDeleteView >
테스트해본다.!
< 삭제 테스트 >
< 삭제 확인 팝업 >
정말 삭제할 것인지 물어본다.
그 후 정말 삭제할 것인지 다시 한번 물어보는데 이는 DeleteView에 있는 기본 기능에서 템플릿만 만들어서 이어주었다.
< 재재확인 >
< 삭제된 글 >
글이 정상적으로 삭제 되는 것을 확인하였다.
다음으로 댓글 삭제이다. 댓글 삭제도 CBV를 이용하고 싶었으나, pk 종류가 두개가 들어오는데 이를 처리하는 부분에서 계속 에러가 나서 직접 view를 작성하였다.
< comment_delete view >
post와 comment 둘 다 얻는다. 그 이유는 comment는 삭제하기 위한 것이고, post는 다시 원래 있던 페이지로 돌아가기 위해서이다.
< 댓글 삭제 테스트 >
맨 위의 댓글을 지워보았다.
< 댓글 삭제 확인 >
댓글이 정상적으로 삭제되었다.
* 추가할 기능 구현 (게시판)
- 조회수 조작 방지 기능
* 추가할 기능 구현 (인증)
- 소셜 인증
'Web > Django Project' 카테고리의 다른 글
Code1018 Project (7) - 자료실 추가 및 좋아요 기능 (0) | 2018.08.15 |
---|---|
Code1018 Project (5) - 댓글, 조회수 기능 (0) | 2018.08.14 |
Code1018 Project (4) - 게시판 기능 (0) | 2018.08.13 |
Code1018 Project (3) - mypage 기능 (0) | 2018.08.07 |
Code1018 Project (2) - 날짜선택 Widget 기능 (0) | 2018.08.04 |