未收到预留API端点的错误响应

问题描述

我写了剩下的api端点进行保留。它检查房间的可用性,如果房间不可用,则返回错误。代码可以运行,并且if语句检查可以正常工作,并且没有创建新对象,但是我看不到响应错误。

这是我的views.py:

class ReservationViewSet(viewsets.ModelViewSet):
    """Manage Reservation in database"""
    queryset = Reservation.objects.all()
    serializer_class= serializers.ReservationSerializer
    

    def get_queryset(self):
        """return a list of Reservations"""
        return self.queryset.order_by('-id')

    def perform_create(self,serializer):
        """create a new Reservation if available"""
        Room_ID = self.request.data.get('RoomID')
        Start_Date= self.request.data.get('StartDate')
        End_Date= self.request.data.get('EndDate')
        Check1 = Reservation.objects.filter(RoomID=Room_ID).filter(StartDate__gte=Start_Date).filter(StartDate__lte=End_Date)
        Check2 = Reservation.objects.filter(RoomID=Room_ID).filter(EndDate__gte=Start_Date,EndDate__lte=End_Date)
        Check3 = Reservation.objects.filter(RoomID=Room_ID).filter(StartDate__gte=Start_Date).filter(EndDate__gte=Start_Date).filter(StartDate__lte=End_Date).filter(EndDate__lte=End_Date)
    
        if (Check1 or Check2 or Check3):
            serializer.is_valid(raise_exception=True)
            print("it is not allowed")
            return Response(serializer.errors,status=status.HTTP_400_BAD_REQUEST)
        else:
            serializer.save() 

这是urls.py:

from django.urls import path,include
from rest_framework.routers import DefaultRouter

from reservation import views

router = DefaultRouter()
router.register('',views.ReservationViewSet)

app_name='Reservatiom'

urlpatterns=[

    path('',include(router.urls)),]

这是我的序列化程序。py

from rest_framework import serializers
from core.models import ListingOwner,Room,Reservation
from room.serializers import RoomSerializer

class ReservationSerializer(serializers.ModelSerializer):
    """"Serializer for making a new Reservation"""
    RoomID = serializers.PrimaryKeyRelatedField(queryset=Room.objects.all(),many=True)
    class Meta:
        model = Reservation
        fields=('id','ReserverName','StartDate','EndDate','RoomID' )
      

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)