Django 未收到保留API终结点的错误响应
我为预订编写了restapi端点。它会检查房间的可用性,如果不可用,则会以错误响应。代码运行的点和if语句检查工作正常,没有创建新对象,但我看不到响应错误 这是my views.py:Django 未收到保留API终结点的错误响应,django,rest,response,Django,Rest,Response,我为预订编写了restapi端点。它会检查房间的可用性,如果不可用,则会以错误响应。代码运行的点和if语句检查工作正常,没有创建新对象,但我看不到响应错误 这是my views.py: class ReservationViewSet(viewsets.ModelViewSet): """Manage Reservation in database""" queryset = Reservation.objects.al
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()
这是URL.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)),
]
这是我的serializer.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' )