프로젝트/[Web] 서평 작성 사이트

서평 작성 (5) - 서평 수정하고 삭제하기 (PUT, DELETE)

sollllllll 2022. 2. 13. 23:05

저번 포스트에서는 서평을 작성하고 불러오는(조회하는) 함수를 작성했다.

이번에는 CRUD 중 Update, Delete 기능을 구현하는 PUT, DELETE 함수를 작성해보려고 한다.

기본 구조는 이전에 작성한 포스트에서 확인할 수 있다.

 

 

 

(1) app/urls.py 수정

post, get 과 마찬가지로 호출되는 url 을 함수와 연결한다.

path('edit/', views.ReviewView.as_view()),
path('delete/', views.ReviewView.as_view())

 

 

 

(2) app/views.py 파일에 함수 작성

APIView 클래스를 상속받아 작성한 클래스 안에 put, delete 함수를 작성한다.

...
    def put(self, request):
        data = request.data
        rid = data.get('id')
        review = Review.objects.get(id=rid)
        review.reviewTitle = data.get('rtitle')
        review.reviewRate = 0,  # 추후에 평점 받아와서 저장
        review.reviewTxt = data.get('text')
        return Response({'message':'서평 수정이 완료되었습니다.'}, status=status.HTTP_200_OK)

    def delete(self, request):
        data = request.data
        rid = data.get('id')
        review = Review.objects.get(id=rid)
        review.delete()
        return Response({'message':'서평 삭제가 완료되었습니다.'}, status=status.HTTP_200_OK)
...

 

put 함수에서는 PK인 서평의 id 를 받아와서 해당 서평을 불러온 후,

서평의 수정된 필드를 수정된 값으로 직접 변경한다.

 

delete 함수에서는 PK인 서평의 id 를 받아오고 해당하는 서평을 불러온 후, 그 서평을 직접 삭제한다.

 

이렇게 클래스를 상속받아 Update, Delete 기능을 간단하게 구현하였다.