Django模型,datetime字段范围查询集

时间:2017-03-14 17:32:52

标签: python django

我有2个字段用于开始日期和结束日期。 如何获取介于开始日期和结束日期之间的行。

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'Время окончания работы')

2 个答案:

答案 0 :(得分:1)

您可以django's filter使用datetime.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 :(得分:1)

您可以使用__lt__gt过滤器来定位两者之间的日期。

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

如果您正在使用DateField并希望包含结束日期,请使用lte,否则请使用lt