2014-05-12 48 views
1

我有一个模型Django的:日期时间查询

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

如何检查特定日期时间范围内没有任何预订对象的开始或结束日期时间之间下降?

我要检查,如果我能预订说book_start_datebook_end_date资源没有它那个范围

回答

3

使用__lte__gteexists()期间已经预订检查是否有东西在日期范围:

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

另见:Determine Whether Two Date Ranges Overlap

+0

您可以使用__range或者:http://stackoverflow.com/questions/4668619/django-database-query-how-to-filter-objects-by-date-range – danielfranca