jiiheee's 개발 일지
[Django] 주문 등록 API 구현하기 본문
목표
- 요청자로부터 user_id, product_id 받기
- 요청자로부터 받은 data DB에 저장 후 '주문이 완료되었습니다.' 보여주기
Reservation / urls.py 'ReservationAddView' 추가
데이터를 DB에서 가져오는게 아니라 넣을 것이기 때문에 url을 "orderadd/"로 받는다.
from django.urls import path
from .views import ReservationView, ReservationListView, ReservationAddView
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())
]
Reservation / views.py 'ReservationAddView' 추가
request로부터 data를 받아서 DB에 저장하므로 def post로 받는다.
받을 정보는 reservation_number, user, product 이다.
(사실 reservation_number는 user가 작성하지 않고 주문을 완료하면 자동으로 랜덤하게 주어지도록 해야하는데
우선 user로 받고 추후에 수정할 예정)
request로부터 받은 정보들을 Reservation models 폼에 맞춰서 넣은 후 DB에 저장한다.
(이전에 공부했듯이 create하는 순간 DB에 save까지 연결되므로 save() 함수는 사용하지 않아도 된다.)
DB에 정상적으로 저장이 되면 '주문이 완료되었습니다.' 문구를 보여준다.
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 ReservationAddView(APIView):
def post(self, request):
reservation_number = request.data.get("reservation_number")
user = request.data.get("user_id")
product = request.data.get("product_id")
Reservation.objects.create(
reservation_number=reservation_number,
user_id=user,
product_id=product
)
return HttpResponse('주문이 완료되었습니다.')
결과

'📚 Study > Django' 카테고리의 다른 글
[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 |
[Django] 회원가입 API 구현하기 (1) (0) | 2023.12.06 |