title: How to remove an already selected option from options list to avoid double bookings
body: <p>I've been scratching my head with this for 2 days hoping for a sudden brainwave and getting nowhere. I've completely drawn a blank with my logic and all attempts have resulted in me breaking my code. I'm trying to get it so that on a specific date, if a user has already selected a time slot with a selected barber, that that time slot will be removed from the list of time slots, so it cannot be selected again by another user.</p>
  <p>From models.py</p>
  <pre><code>from django.db import models
  import datetime
  from django.core.validators import MinValueValidator
  from django.contrib.auth.models import User
  
  SERVICES = (
          ('Gents Cut', 'Gents Cut'),
          ('Kids Cut', 'Kids Cut'),
          ('Cut and Shave', 'Cut and Shave'),
          ('Shave Only', 'Shave Only'),
          )
  
  TIME_SLOTS = (
          ('9.00 - 10.00', '9.00 - 10.00'),
          ('10.00 - 11.00', '10.00 - 11.00'),
          ('11.00 - 12.00', '11.00 - 12.00'),
          ('12.00 - 13.00', '12.00 - 13.00'),
          ('13.00 - 14.00', '13.00 - 14.00'),
          ('14.00 - 15.00', '14.00 - 15.00'),
          ('15.00 - 16.00', '15.00 - 16.00'),
          ('16.00 - 17.00', '16.00 - 17.00'),
          ('17.00 - 18.00', '17.00 - 18.00'),
          )
  
  BARBER_NAME = (
          ('Nathan', 'Nathan'),
          ('Chris', 'Chris'),
          ('Ben', 'Ben'),
          ('Dan', 'Dan'),
          )
  
  
  class Booking(models.Model):
      date = models.DateField(validators=[MinValueValidator(datetime.date.today)])
      time = models.CharField(max_length=50, null=True, choices=TIME_SLOTS)
      barber = models.CharField(max_length=50, null=True, choices=BARBER_NAME)
      service = models.CharField(max_length=50, null=True, choices=SERVICES)
      customer = models.ForeignKey(User, on_delete=models.CASCADE)
  
      def __str__(self):
          return f&quot;{self.customer} has booked {self.service} on {self.date} at {self.time} with {self.barber}&quot;
  </code></pre>
  <p>from views.py</p>
  <pre><code>from django.shortcuts import render, get_object_or_404
  from django.contrib.auth.decorators import login_required
  from django.views import generic, View
  from django.contrib import messages
  from django.http import HttpResponseRedirect
  from .models import Booking
  from .forms import BookingForm
  
  
  @login_required()
  def make_booking(request):
      if request.method == &quot;POST&quot;:
          form = BookingForm(request.POST)
          if form.is_valid():
              booking_form = form.save(commit=False)
              booking_form.customer = request.user
              booking_form.save()
              messages.success(request, ('Your booking is awaiting confirmation'))
              return HttpResponseRedirect('/bookings')
      else:
          form = BookingForm()
  
      return render(request, 'bookings.html', {'form': form})
  </code></pre>
  <p>from forms.py</p>
  <pre><code>from .models import Booking
  import datetime
  from django import forms
  
  
  class DatePicker(forms.DateInput):
      input_type = 'date'
  
  
  class BookingForm(forms.ModelForm):
      class Meta:
          model = Booking
          fields = ('date', 'time', 'barber', 'service',)
          widgets = {
              'date': DatePicker(),
          }
  </code></pre>