저번 포스트에서는 서평을 작성하고 불러오는(조회하는) 함수를 작성했다.
이번에는 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 기능을 간단하게 구현하였다.
'프로젝트 > [Web] 서평 작성 사이트' 카테고리의 다른 글
프론트와 연결하기 (3) - 이미지 로드 시 404 에러 해결 (0) | 2022.03.06 |
---|---|
서평 작성 기능을 마치며 (0) | 2022.02.17 |
서평 작성 (4) - 서평을 DB에 저장하고 불러오기 (POST, GET) (0) | 2022.02.04 |
프론트와 연결하기 (2) - Axios 활용 (0) | 2022.01.25 |
프론트와 연결하기 (1) - 장고/리액트 연동 (0) | 2022.01.18 |