Appointment Booker. Запрос данных
Я создал систему назначений с отдельными моделями даты и времени. Я столкнулся с некоторыми проблемами, пытаясь запросить данные, поскольку они разделены, а я хотел бы запросить их как день и время вместе. Какой лучший способ запросить это, чтобы я мог проверить, есть ли свободные места, когда пользователь отправляет форму.
models.py
class Appointment(models.Model):
name = models.CharField(max_length=80)
email = models.EmailField(max_length=254)
start_date = models.DateField()
start_time = models.TimeField()
end_date = models.DateField()
end_time = models.TimeField()
def __str__(self):
return f"{self.email} {self.name} has booked {self.start_date} & {self.start_time} until {self.end_date} & {self.end_time}"
forms.py
class AvailabilityForm(forms.Form):
name = forms.CharField(max_length=80, required=True)
email = forms.EmailField(max_length=254, required=True)
start_date = forms.DateField(required=True, input_formats=['%Y-%m-%d'])
start_time = forms.TimeField(required=True, input_formats=["%H:%M"])
end_date = forms.DateField(required=True, input_formats=['%Y-%m-%d'])
end_time = forms.TimeField(required=True, input_formats=["%H:%M"])
views.py
class BookingView(View):
def get(self, request, *args, **kwargs):
return render(request, "availability.html")
def post(self, request, *args, **kwargs):
form = AvailabilityForm(request.POST)
if form.is_valid():
data = form. cleaned_data
else:
return render(request, "unsuccessful.html")
**bookingListMax = Appointment.objects.filter(start_date__lt=data['end_date'], end_date__gt=data['start_date'])**
if not bookingListMax:
booking = Appointment.objects.create(
name=data["name"],
email=data["email"],
start_date=data["start_date"],
start_time=data["start_time"],
end_date=data["end_date"],
end_time=data["end_time"],
)
booking.save()
*** это мой код проблемы