如何在django中指定日期范围

时间:2018-05-25 19:16:05

标签: python django time

我目前正努力让我的代码部分工作。

我试图在页面上构建三个部分: 我的数据库中的每个实体都有一个"块到达时间" 我想将它们分为三个方面:

"当前计时器",chunk_arrival_time在过去48小时内的实体

"未来的计时器",chunk_arrival_time未来的实体

"过去的定时器",chunk_arrival_time超过48小时前的实体。

目前我有这个:

    render_items = {'moonextractions': base_query.all(),
                'current_timers': base_query.filter(
                    chunk_arrival_time__lte = timezone.now() + timezone.timedelta(days=-1)),
                'future_timers': base_query.filter(
                    chunk_arrival_time__gte=timezone.now()),
                'past_timers': base_query.filter(
                    chunk_arrival_time__lt=timezone.now()).order_by('-chunk_arrival_time')}

顶部块,"当前定时器"是我挣扎的那个。

如何对其进行格式化以便按上述方法对事物进行排序?

1 个答案:

答案 0 :(得分:1)

您必须为current_timers执行两个查询步骤。因为您正在寻找的时间比现在少,大于或等于现在减去两天。

render_items = {'moonextractions': base_query.all(),
            'current_timers': base_query
                .filter(chunk_arrival_time__lte = timezone.now())
                .filter(chunk_arrival_time__gt = timezone.timedelta(days=-2)),
            ⋮
            }

注意:您在代码中说了1天,在说明中说了48小时 - 我假设解释是正确的。此外,由于书面past_timers包含未在查询的确切时刻到达的任何人。