Запрос базы данных и удаление вариантов полей символов на основе того, что есть в базе данных

Я создал форму бронирования с помощью Django forms. Для выбора времени у меня есть ряд вариантов. Однако я хочу отображать эти варианты в форме, только если они еще не существуют для этих данных и времени.

Вот мой models.py:

from django.db import models
from django.contrib.auth.models import User
from django.core import validators
import datetime

TIME_CHOICES = (
        ('12:00:00', '12pm'),
        ('12:15:00', '12:15pm'),
        ('12:30:00', '12:30pm'),
        ('12:45:00', '12:45pm'),
        ('13:00:00', '1pm'),
        ('13:15:00', '1:15pm'),
        ('13:30:00', '1:30pm'),
        ('13:45:00', '1:45pm'),
        ('14:00:00', '2pm'),
        ('14:15:00', '2:15pm'),
        ('14:30:00', '2:30pm'),
        ('14:45:00', '2:45pm'),
        ('15:00:00', '3pm'),
        ('15:15:00', '3:15pm'),
        ('15:30:00', '3:30pm'),
        ('15:45:00', '3:45pm'),
        ('16:00:00', '4pm'),
        ('16:15:00', '4:15pm'),
        ('16:30:00', '4:30pm'),
        ('16:45:00', '4:45pm'),
        ('17:00:00', '5pm'),
        ('17:15:00', '5:15pm'),
        ('17:30:00', '5:30pm'),
        ('17:45:00', '5:45pm'),
        ('18:00:00', '6pm'),
        ('18:15:00', '6:15pm'),
        ('18:30:00', '6:30pm'),
        ('18:45:00', '6:45pm'),
        ('19:00:00', '7pm'),
        ('19:15:00', '7:15pm'),
        ('19:30:00', '7:30pm'),
        ('19:45:00', '7:45pm'),
        ('20:00:00', '8pm'),
        ('20:15:00', '8:15pm'),
        ('20:30:00', '8:30pm'),
        ('20:45:00', '8:45pm'),
        ('21:00:00', '9pm'),
        ('21:15:00', '9:15pm'),
        ('21:30:00', '9:30pm'),
        ('21:45:00', '9:45pm'),
        ('22:00:00', '10pm'),
        ('22:15:00', '10:15pm'),
        ('22:30:00', '10:30pm'),
        ('22:45:00', '10:45pm'),
    )


class Booking(models.Model):
    user = models.ForeignKey(
        User, on_delete=models.CASCADE, null=True, blank=True
        )
    first_name = models.CharField(max_length=25, null=False, blank=False)
    last_name = models.CharField(max_length=25, null=False, blank=False)
    email_address = models.EmailField(default="email@email.com")
    phone_number = models.IntegerField()
    date_of_booking = models.DateField(default=datetime.date.today())
    time_of_booking = models.CharField(
        max_length=10, choices=TIME_CHOICES, default=""
        )
    number_of_people = models.IntegerField()
    special_requests = models.CharField(max_length=200)

    def __str__(self):  # code adapted from Models Part 2 FST walkthrough
        return self.first_name + " " + self.last_name + " | " \
             + str(self.date_of_booking) + " at " + str(self.time_of_booking)

Вот мой views.py fucntion:

def make_booking(request):

    if request.method == 'POST':
        form = BookingForm(request.POST)
        if form.is_valid():
            form.save()
            print('form saved')
            return redirect(get_bookings)
        else:
            print('broken')
   
    form = BookingForm()
    context = {
        'form': form
        }
    return render(request, 'booking/make_booking.html', context)

Как написать функцию для удаления из выпадающего списка дат/времени, уже отправленных в базу данных.

введите здесь описание изображения

Я могу найти только информацию, которая говорит мне, как записать текущую сессию, но не как сделать запрос к базе данных.

Почему бы не создать модель выбора времени вместо того, чтобы жестко закодировать ее в models.py. Тогда вы сможете использовать что-то вроде:

TimeModel.objects.filter(time=form.time_of_booking).delete()
Вернуться на верх