일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
- 와이어프레임
- 머신러닝
- 비밀번호 수정
- 팀프로젝트 기획
- 프론트엔드
- 팔로우 기능 에러
- 프로필사진 업로드
- serializer
- test.py
- Python
- 댓글지우기
- CNN
- 댓글쓰기
- json to db
- 개인페이지
- original set
- 북마크한 목록 가져오기
- 다항 논리 회귀
- class view
- Django
- 이진 논리 회귀
- docker
- 장고
- python to json
- API명세
- 딥러닝
- DRF
- ERD
- 백엔드
- js
- Today
- Total
코딩 개발일지
장고(Django) 좋아요/공유하기 기능만들기 본문
좋아요 기능
좋아요 기능을 만들어주기위해 models.py의 게시물(Bucket)에 한 컬럼을 더 추가해 줄것이다.
Many to Many 로 값을 줘서 데이터베이스에 새로운 테이블이 생성되도록 할 것이다.
migarete를 해주면, db에 like_users table이 생기고, AUTH_USER_MODEL의 pk(id) 와 bucket의pk(id) 가 들어왔다.
urls.py와 views.py에서 만들어보자.
urls.py에서 경로는 이렇게 지정해줬으니, views.py에서 likes 함수를 만들면 되겠다.
POST 받았을때,
접속한 user가 like_users의 table에 있을 때, html의 버튼을 누르면 좋아요를 취소해주고,
반대로, 접속한 user가 like_users의 table에 없을 때, html의 버튼을 누르면 좋아요를 하게 해줬다.
이제 html도 수정해주자.
form 태그에 button을 submit 해주면 post하도록 html에 만들어줬다.
좋아요버튼은 하트를 넣었는데, 사실 처음에는 빈 하트를 받고, 자신이 좋아요를 누르면 하트가 채워지도록 하고싶었는데, 그게 잘 안됐다.
{{ bucket.like_users.count }}를 넣어서 좋아요를 몇명이 했는지 볼 수 있게 했다.
완성본!! 댓글쪽은 기능구현도 다 되어있고, 꾸미기도 잘 꾸민 것 같아서 기분이 좋다!!!!
공유하기 기능
위 사진을 보면 알겠지만, 공유하기 기능도 만들었다.
공유하기는 장고를 쓴다면 날로 먹을 수 있다ㅋㅋㅋ
1. pip install django-social-share 를 터미널에 입력해줘서 install해준다.
2. 까먹지 말고 pip freeze > requirements.txt
3. 까먹지 말고 언제나 그렇듯 settings.py에 추가해준다.
3. 원하는 html 파일에서 {% load social_share %} 입력하면 사용 가능!
4. 원하는 공유하기 기능을 넣어주자! 나는 이렇게 넣었음. 결과물은 위 사진처럼 나옴!!!
style에서 class like-button css좀 만져주면 완성!
저 버튼을 누르면 페이스북(트위터)로 이동해서 바로 공유하는 글을 작성할 수 있다. (공유하고싶은 페이지 자동 생성)
바로 이 화면 뜸!!
장고는 신이다..
'AI 본 교육 > AI 6주차' 카테고리의 다른 글
장고(Django) - KPT 회고 / 프로젝트 발표 (0) | 2023.09.16 |
---|---|
제출용 - 장고(Django)기초 - KPT 회고 (7조 사고칠조) (0) | 2023.09.15 |
장고(Django) ERD/API 보완, footer 꾸미기 (0) | 2023.09.14 |
장고(Django) 역참조 / form.py (0) | 2023.09.12 |
장고(Django) 댓글쓰기/지우기 (2) | 2023.09.11 |