* 추가할 기능 구현 (게시판)

- 댓글 기능

- 조회수 기능

- 게시글 삭제 기능


* 추가할 기능 구현 (인증)

- 소셜 인증


------------------------------------


  오늘은 댓글 기능과 조회수 기능을 추가하였다.


  추가적으로 게시판의 모양을 테이블로 조금 더 그럴싸하게 만들었다.


< 게시판 표 작성 >


  게시판 모델 HTML을 가져와 사용했고, 컨텐츠는 전달받는 post에서 뽑아서 뿌려주었다.



< 게시판 모양 >


  다음으로 댓글 기능을 추가하였다.


다음은 댓글 Model이다.


< Comment Model >


  writer를 Profile과 연결해주었다. 또 post와도 연결해주었다.


  다음은 템플릿에서 댓글 출력 코드이다. 


< 댓글 출력 코드 >


  Comment 모델에서 post를 외부키로 연결할 때 related_name을 comments로 정의해주어서 comments로 접근할 수 있다.


  여기에 사진은 캡쳐하지 않았지만 comment.comment_writer로 닉네임을 출력할 수 있었던 이유는 내가 Profile 모델을 정의하면서 __str__ 을 overwrite해서 닉네임을 출력하게 만들었기 때문이다.


< 댓글 출력 화면 >



  다음으로 댓글 쓰기 기능을 만들었다. 쓰기의 경우 기존 detail 보는 템플릿에서 폼을 추가해주고 해당 폼을 처리해줄 view를 만드는 과정으로 진행했다.



< form 생성 >


  post 와도 외부키가 연결되어있기 때문에 post의 pk가 필요하다.



< comment_write view >


  POST 메서드일 경우만 처리하게 만들었다. 이 경우 post를 pk로 뽑아내고 현재 로그인한 사용자의 user를 가져와 연결된 Profile을 작성자와 연결해준다. 그 후 각 내용을 Comment 로 생성해주면 된다.



< 테스트 댓글 작성 >



< 댓글 작성 확인 >


  다음으로 댓글의 개수를 출력해주었다.


< 댓글 수 >


  이 댓글 수를 새주는 것은 all 대신 count를 이용하면 되었다.



  다음으로! 조회수 기능이다.! 

나는 Detail View(CBV)를 사용하였는데, 인터넷에 보니 CBV를 사용할 경우 처리해야할 게 많아서 보통 다른 lib를 이용한다고 들었다. 그런데 내가 일단 구현해 보았다.



< 조회수 증가 함수 생성 >


  @property를 이용하면 템플릿에서도 사용할 수 있다. 조회수를 1 늘리고 저장한다.



< 템플릿에 삽입 >


  이렇게 되면 해당 화면이 불려질때마다 해당 post의 조회수가 1씩 증가한다.



< 조회수 증가 테스트 >

  


  테스트해보니 문제가있었다...

해당 템플릿이 로드 될 때마다 조회수가 증가하다보니, F5를 연달아 누르면 조회수가 막 올라간다... 


  이 기능을 세션을 가지고 처리했던 것 같은데 자세히 다시 알아보고 처리해야겠다.



* 추가할 기능 구현 (게시판)

- 댓글 수정기능

- 조회수 조작 방지 기능

- 게시글 삭제 기능


* 추가할 기능 구현 (인증)

- 소셜 인증


+ Recent posts