问题描述
我写了剩下的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 (将#修改为@)