2017-03-14 57 views
0

我有2个字段的开始日期和结束日期。 如何获取落在开始和结束日期之间的行。Django模型,日期时间字段范围查询集

models.py

class Shop(models.Model): 
    time_begin = models.DateTimeField(max_length=255, 
           verbose_name=u'Время начала работы') 
    time_end = models.DateTimeField(max_length=255, 
          verbose_name=u'Время окончания работы') 
+0

Duplicate of http://stackoverflow.com/questions/24742771/django-filter-objects-by-date-range –

回答

1

您可以使用django's filterdatetime.time objects

import datetime 
shops = Shop.objects.filter(time_begin__gte=datetime.time(10, 0, 0), 
           time_end__lte=datetime.time(22, 0, 0)) 
1

您可以使用__lt__gt过滤器的目标在这两个之间的日期。

Shop.objects.filter(time_begin__gte=<date>, time_end__lt=<date>) 

如果您使用DateField,并希望包括结束日期,使用lte,否则使用lt

+0

'WHERE('catalog_shop'.'id' IN(4,5,6,7,8 ,9,10,11,12)和'catalog_shop'.'min_order' <= 10000 AND'catalog_shop'.'time_end' <22:34:24.999000 AND'catalog_shop'.'time_begin'> 22:34:24.999000) –

+0

但我不需要商店.... –