我目前正努力让我的代码部分工作。
我试图在页面上构建三个部分: 我的数据库中的每个实体都有一个"块到达时间" 我想将它们分为三个方面:
"当前计时器",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')}
顶部块,"当前定时器"是我挣扎的那个。
如何对其进行格式化以便按上述方法对事物进行排序?
答案 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
包含未在查询的确切时刻到达的任何人。