django按日期时间过滤日期范围

时间:2013-12-04 15:25:09

标签: python django datetime

我有一个带有字段" created_at"的模型,我有一个日期列表。所以,我想获得在日期范围内创建的所有模型。怎么样 ?

我知道我们可以使用以下方式轻松比较日期时间和日期:

queryset.filter(created_at__startswith=date)

但是,我有一系列日期,那怎么样? 让我知道更多信息。

5 个答案:

答案 0 :(得分:17)

您可以使用range查找。只需找到最低和更高的日期,然后将其应用为:

queryset.filter(created_at__range=(start_date, end_date))

答案 1 :(得分:9)

您可以使用__gte(大于或等于)和__lte(小于或等于)。例如:

queryset.filter(created_at__gte=datetime.date.today())

答案 2 :(得分:9)

您可以使用range例如

first_date = datetime.date(2005, 1, 1)
last_date = datetime.date(2005, 3, 31)
queryset.filter(created_at__range=(first_date, last_date))

答案 3 :(得分:1)

您可以结合使用daterange字段查找:

queryset.filter(created_at__date__range=(start_date, end_date))

答案 4 :(得分:-3)

使用https://pypi.python.org/pypi/django-daterange-filter/来使用日期范围过滤器。