我有下表:
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
列。