Django:日期时间查询

1 投票
1 回答
980 浏览
提问于 2025-04-18 06:19

我有一个模型

class Booked(models.Model):
    start_date_time = models.DateTimeField()
    end_date_time = models.DateTimeField()
    resource = models.ForeignKey(Resouce)

我该如何检查某个特定的时间范围是否没有和任何已预定的对象的开始或结束时间重叠呢?

我想确认一下,是否可以在某个时间段内,比如说用 book_start_datebook_end_date 来预定一个资源,而这个时间段内没有其他的预定。

1 个回答

3

使用 __lte__gte 结合 exists() 方法,可以检查某个日期范围内是否有数据存在:

Booked.objects.exists(start_date_time__lte=book_end_date, 
                      end_date_time__gte=book_start_date)

另外,您可以查看: 判断两个日期范围是否重叠

撰写回答