코딩/Django

DRF를 이용한 팀프로젝트 진행

김은수2 2023. 5. 9. 20:59

view.py 에서 

목적: 가상의 호텔 운영 홈페이지, 예약과 리뷰남기기를 할 수있다. 회원가입도

내가 구현하고자 한 기능들 : 모든 방들의 정보를 불러옴

 

class RoomView(APIView):
    def get(self, request):
        # 모든 방들의 대한 정보를 불러옴
        rooms = Rooms.objects.all()
        serializer = RoomSerializer(rooms, many=True)
        return Response((serializer.data), status=status.HTTP_200_OK)
    
    def post(self, request):
        # 방을 추가
        serializer = RoomSerializer(data=request.data)
        if serializer.is_valid():
            serializer.save()
            return Response(serializer.data)
        else:
            return Response(serializer.errors)

    def delete(self, request, room_id):
        # 방을 삭제 
        room = get_object_or_404(Rooms, id= room_id)
        room.delete()
        return Response('삭제됨', status=status.HTTP_204_NO_CONTENT)

 

예약을 관리하는 목적을 가진 view.py의 함수 

 

class BookManage(APIView):
    def get(self, request):
        pass

    def post(self, request):
        # 예약하기
        if request.check_in in Book:
            return Response('이미 예약이 잡힌 날짜')
        else :
            serializer = BookSerializer(data = request.data)
            serializer.save()

        return Response('예약을 위한 post 요청')
        # 같은 check_in 이 있으면 예약이 불가합니다.
        # check_in은 날짜 테이블 DateField 입니다.
        # 예를 들어 10일을 예약한다 하면 예약 오브젝트가 10개가 생김...
        # 개선의 여지 ? 

    def delete(self, request, user_id):
        book = get_object_or_404(Book, id=user_id)
        if request.user == book.user:
            book.delete()
            return Response("예약 취소됨", status=status.HTTP_204_NO_CONTENT)
        else:
            return Response("권한이 없음")
        # 예약을 취소하기

 

간단하게 테스트용으로 만들어본 HTML (아직 사용안함)

 

 

 

drf를 이용하여 예약과 방조회를 구현하였다. 

 

'코딩 > Django' 카테고리의 다른 글

시리얼라이저에 대한 이해  (0) 2023.05.17
장고 호텔 예약 시스템  (0) 2023.05.11
프로젝트 기획  (1) 2023.05.08
시리얼라이저 복습  (0) 2023.05.04
파일 입출력  (0) 2023.05.03