오늘은 댓글기능을 구현하기로 했다. 대략적인 댓글 구현에 더해서 세부적으로 구현하고 싶은 부분이 있는데, 다음과 같다.
- 우선 댓글은 전체게시글 페이지와 상세보기 페이지에서 모두 작성이 가능하게 한다.
- 전체게시글 페이지에선 가장 최신 댓글 2개만 보이게 하고 댓글 모두보기를 클릭하면 모든 댓글이 보이게 만든다.
- 좋아요 하트 버튼 오른쪽에 댓글달기 버튼을 만든다!
우선 제일 어려웠던 부분이 댓글을 2개만! 보이게 하는 방법인데 django 공식문서를 통해 해답을 찾을 수 있었다.
우선 mathfilters install한 후 위와 같이 settings.py와 원하는 html페이지에 등록을 시켜준다.
그리고 공식문서를 참고하자면
출처 : pypi.org/project/django-mathfilters/
Usage
You need to load mathfilters at the top of your template. The script provides the following filters:
- sub – subtraction
- mul – multiplication
- div – division
- intdiv – integer (floor) division
- abs – absolute value
- mod – modulo
- addition – replacement for the add filter with support for float / decimal types
Example:
mathfilters를 통해 HTML에서 연산을 할 수 있게 되었다! 이걸로 무엇을 할꺼냐면 게시글마다 달려있는 댓글의 pk값을 컨트롤하여 내가 원하는 번호 이상인 경우에만 댓글이 출력되게 만들 수 있다.
만약 전체 댓글이 10개가 있다면 댓글 pk값은 1~10이 있을 것이다. 그 중에 최신에 달린 2개가 뽑고 싶은 것이니
'전체 댓글 수 - 2 보다 큰 pk값을 가진 댓글만 출력해줘!' 이런 식으로 응용이 가능하다. 코드를 보자면 아래와 같다.
그리고 하트버튼 오른쪽에 메세지버튼을 보이게 만드는 것은 float를 통해 구현하였다. 주의해야할 점은 만약 하트랑 메세지를 나란히 하고 싶다면 하트에만 float를 적용할 것! 둘 다 적용하면 '하트'-'메세지'-'그 밑에 요소' 이런식으로 메세지가 float속성을 먹어서 원하는 구성이 되지 않는다.
마지막으로 구현한 페이지를 보자면!
요런느낌! 역시 아직 많이 부족하다. 진행하면 할수록 어렵긴 하지만 꾸준히 하면 언젠가! 원하는 사이트를 만들 수 있지 않을까..!😁
'WEB🛫 > Django' 카테고리의 다른 글
[django] 인스타그램 클론 코딩 #2 : 좋아요 기능 / 팔로우 기능 (0) | 2021.05.01 |
---|---|
[django] 인스타그램 클론 코딩 #1 : 로그인,회원가입 구현 / Navbar 만들기 / 게시글 CRUD + 프로필 페이지 (0) | 2021.04.28 |