python - 如何在 django 中指定日期范围
问题描述
我目前正在努力让我的部分代码正常工作。
我正在尝试在页面上构建三个部分:我的数据库中的每个实体都有一个“块到达时间”,我想将它们分为三个区域:
“当前计时器”,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')}
最上面的“当前计时器”是我正在努力解决的问题。
我需要如何格式化它以便如上所述对事物进行排序?
解决方案
您必须对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
的包括没有在查询的确切时间到达的任何人。
推荐阅读
- android - 如何将 Firefox Desktop 的开发工具与 Firefox for Android 连接?
- .net-core - 邮递员在提供无效令牌后获得 401 Unauthorized with .Net Core Identity 后,我是否拥有正确的令牌?
- vue.js - 如何在vuejs中提交后清除表单
- python - uwsgi运行时无法安装外部包insde python
- sql - 在 Magento1.8 中更改现有客户电子邮件地址
- kotlin - 用于 Kotlin 项目的 Azure DevOps 管道
- java - 为什么 TimerTask 运行两次?
- python - 使用多个 Python 应用程序构建存储库
- azure-devops - 如何限制存储库的读取访问/可见性?
- javascript - 带有 api url 的意外标识符