У меня есть следующие таблицы:
class Slot(models.Model):
time_range = models.DateTimeRangeField()
calendar = models.ForeignKey('Calendar')
campaign = models.ForeignKey('Campaign', null=True)
class Appointment(models.Model):
calendar = models.ForeignKey('Calendar')
campaign = models.ForeignKey('Campaign', null=True)
slot = models.ForeignKey('Slot', models.DO_NOTHING, unique=True, null=True)
timezone = models.CharField(max_length=120)
Я хочу сделать Slot.time_range
уникальным, чтобы другие слоты не перекрывались с ним, а просто у этого слота есть назначение.
У меня естьследующий SQL пока
ALTER TABLE appointments_slot
ADD CONSTRAINT time_range_unique
EXCLUDE USING gist (time_range WITH &&)
WHERE (MISSING PART);
Есть ли способ присоединиться или что-то здесь, я пробовал много способов без успеха.Возможно, я закончу добавление столбца appointment_id
в таблицу Slot
.