목적
게시물 추천/비추천 집계용
모델
추천/비추천은 1개 모델에서 관리하며, is_like로 구분한다.
또한 기간별 집계를 위해 생성된 날짜를 기록한다.
class Like
pk: int
user: fk, user
is_like: bool
created_at: datetime.date
object_id: fk, 게시글
동작
Create, Delete
추천을 한 상태라면 추천 취소만, 안한 상태라면 추천만 가능한 버튼을 제공한다.
기존 추천 오브젝트 유무에 따라 삭제 또는 생성만 하면 되므로 view는 1개만 만들어 사용하는 것이 가능하다.
class like
if method != post => 400 bad request
if not 로그인 => 403 perm err
if qs.get(object_id={{ 게시글 id }}, user=request.user)
기존 추천/비추천 기록 삭제
else
추천 또는 비추천 기록 생성
return (추천상태, 추천/비추천 수)