
posting 앱에서 좋아요 및 팔로우 기능도 진행한다! 다른 앱을 만들어도 무방하다.

.png)
like_username은 User 앱을 FK로 연결한다.posting_photo는 Posting 앱을 FK로 연결한다.liked_at은 created_at처럼 DTF auto_now_add=True로 생성시간을 담는다..png)
다른 GET 기능들 처럼 list를 선언하고 해당 값들을 append한다. 이전 포스팅에 상세하게 다뤘다!
좋아요 기능도 .get() 함수를 활용해서 사용자, 또는 게시물이 없을 경우 None 값을 받을 수 있도록 설정했다. 좋아요 누를 때 사용자(user_id)가 갑자기 비활성화 했을 수도 있고, 게시물을 갑자기 삭제(posting_id)할 수 있기 때문에 해당 조건문을 작성했다.(하지만 이 조건이 필요한지 잘 모르겠다..)
설정한 조건문들을 다 통과하면 성공적으로 Like.objects.create()으로 게시물을 좋아요 누를 수 있다!
둘 다 하나의 테이블을 참조하는 흔하지 않은 케이스다.
그리고 follow는 User 앱 안에서 구현했다. (x Posting 앱)
.png)
.png)
프론트에서 follower, following id를 넘겨주면 우리는 이 둘을 User.objects.get()을 통해 데이터베이스에서 가져와야 한다. 만약 follower, following id가 데이터베이스에 없을 경우 우리는 INVALID 하다고 error를 띄운다.
filter().exists()를 통해 팔로우와 언팔로우 기능을 구현하는 포스팅을 따로 만들었다.
만약 follower, following id가 follows table안에 존재한다면 나는 delete()을, 만약 해당 id가 존재하지 않는다면 create()을 통해 언팔로우와 팔로우를 구현했다~
같은 테이블을 참조해서 더 복잡하게 생각한 것 같다. m2m, fk 앞에서 기죽지말고 기본 베이스에 충실하자!
잘 참고하고 갑니다!