Django Postgres DateRangeField-我可以使用唯一的vaildator吗

Django Postgres DateRangeField-我可以使用唯一的vaildator吗,django,django-models,Django,Django Models,我正在尝试使用Django中一些闪亮的新Postgres字段 对于预订系统来说,DateRangeField似乎是完美的。 我是否可以使用与此字段相关的唯一或甚至唯一的验证日期 不幸的是,优秀的Django文档没有详细说明验证器和Postgres字段。因此,据我所知,字段选项unique和unique_for_date基本上不适用于Postgres日期范围字段 但是,有一种方法可以使用Porstgres索引 我们需要一个Postgres中的树状图。 这是一个Postgres扩展,它是随Postg

我正在尝试使用Django中一些闪亮的新Postgres字段

对于预订系统来说,DateRangeField似乎是完美的。
我是否可以使用与此字段相关的唯一或甚至唯一的验证日期


不幸的是,优秀的Django文档没有详细说明验证器和Postgres字段。

因此,据我所知,字段选项uniqueunique_for_date基本上不适用于Postgres日期范围字段

但是,有一种方法可以使用Porstgres索引 我们需要一个Postgres中的树状图。 这是一个Postgres扩展,它是随Postgres提供的,我们只需要将它安装到数据库中

CREATE EXTENSION btree_gist;
一旦我们有了这个,我们就可以对date_range字段进行约束,并将其与表中的另一个字段组合

假设我们有一个酒店房间号(room_id)和一个预订日期范围(dt_range),两者加起来应该是唯一的。我们的限制是

ALTER TABLE <yourtablename> ADD EXCLUDE USING gist ( room_id WITH =, dt_range WITH && );
我希望这有帮助

django.db.utils.IntegrityError