Правильно составлять базу данных назначений с указанием свободных временных интервалов

Моя цель - создать систему назначений на Django, способную создавать встречи между преподавателями и студентами с возможностью для преподавателей выбирать свои свободные места, а для студентов выбирать временные интервалы в зависимости от свободных мест преподавателей.

Есть 2 класса :

Один - класс с доступностью учителя: внешний ключ - учитель, а также дата, время начала и время окончания

Один - назначение класса с 2 внешними ключами для ученика и учителя

EDIT: Вот модели :

class Appointment(models.Model): 
    student = models.ForeignKey('Student', null=True, on_delete=models.CASCADE)
    staff = models.ForeignKey('Staff', null=True, on_delete=models.CASCADE) 
    date = models.DateField(null = True)
    timeslot = models.IntegerField(null = True, choices=TIMESLOT_LIST) 

    @property 
    def time(self): 
        return self.TIMESLOT_LIST[self.timeslot][1] 

    is_completed = models.BooleanField(default=False)
    is_confirmed =models.BooleanField(default=False) 

class AppointmentAvailability(models.Model):

    staff = models.ForeignKey('Staff', null = True, on_delete = models.CASCADE) 
    date = models.DateField(null = True)
    timeslot = models.IntegerField(null = True, choices=TIMESLOT_LIST) 

Но как теперь снять доступность временного интервала в доступности класса учителя, чтобы не позволить студенту назначить встречу в то же время?

Вернуться на верх