jiiheee's 개발 일지
[Django] 주문 취소 API 구현하기 본문
목표
- order cancel urls, views 추가
Reservation / urls.py 'cancel' 추가
사용할 url을 urlpatterns에 추가하고 import에도 추가해준다.
from django.urls import path
from .views import ReservationView, ReservationListView, ReservationAddView, ReservationCancel
from . import views
urlpatterns = [
path("<int:user_id>/<int:reservation_id>", ReservationView.as_view()),
path("<int:user_id>", ReservationListView.as_view()),
path("orderadd/", ReservationAddView.as_view()),
path("cancel/<int:reservation_id>", ReservationCancel.as_view())
]
# reservation_id를 받아서 주문 취소 url 추가
Reservation / views.py 'ReservationCancelView' 추가
DB에 저장된 데이터를 지우기 위해서 Reservation.objects.get(id=reservation_id)으로 한가지 데이터를 가져온다.
여기서 id는 Reservation model의 속성에 있는 조건을 사용해야하며 reservation_id는 요청자로부터 받은다.
Reservation_number로 받지않고 reservation_id로 받는 이유는 reservation_id는 각각의 데이터가 고유하게 받는 번호이므로 중복되거나 수정되지 않게 때문에 오류를 줄여줄 수 있기 때문이다.
from django.http import HttpResponse
from rest_framework.response import Response
from rest_framework.views import APIView
from reservation.models import Reservation
from .serializers import ReservationSerializer
# ... (중간 코드 생략)
class ReservationCancel(APIView):
def get(self, request, reservation_id: int):
order_cancel = Reservation.objects.get(id=reservation_id)
order_cancel.delete()
return HttpResponse('주문을 취소하였습니다.')
결과

'📚 Study > Django' 카테고리의 다른 글
[Django] 장바구니 API 구현하기 (5) | 2023.12.15 |
---|---|
[Django] 물품 검색 API 구현하기 (0) | 2023.12.14 |
[Django] 주문 등록 API 구현하기 (0) | 2023.12.13 |
[Django] 주문내역조회 API 구현하기 (0) | 2023.12.12 |
[Django] 회원가입 API 구현하기 (2) (4) | 2023.12.07 |