프로젝트/[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 기능을 간단하게 구현하였다.