查询时在Django TimeStampedModel中指定时间间隔[重复]

Posted

技术标签:

【中文标题】查询时在Django TimeStampedModel中指定时间间隔[重复]【英文标题】:Specify time interval in Django TimeStampedModel while Querying [duplicate] 【发布时间】:2016-05-27 14:16:57 【问题描述】:

我正在尝试从 django 查询我的 postgres 数据库,我正在使用自定义管理命令运行 cron。我有一个名为 Booking时间戳模型,它创建并修改了 at 参数,以便我知道是否已经为该特定预订调用了 cron 作业。现在 cron 作业每小时调用一次,所以我需要做的是查询我的 Booking 模型为

s = Booking.objects.all().filter(created_at = datetime.now())

有没有办法可以为 created_at 指定时间范围而不是特定值,我希望我的范围是当前时间 - 1 小时到当前时间。

我知道我可以检索所有对象并单独测试所有对象,我只是想知道是否有办法将其合并到 Django 查询中。

【问题讨论】:

什么版本的 django? 我使用的是 django 1.7 【参考方案1】:

经过一番研究,我找到了方法,

s = Booking.objects.all().filter(
    created_at__range=[datetime.now() - timedelta(minutes=60), datetime.now()]
)

Django 提供了一个在查询中提供范围的功能,使用变量名__range。

【讨论】:

以上是关于查询时在Django TimeStampedModel中指定时间间隔[重复]的主要内容,如果未能解决你的问题,请参考以下文章

尝试接收条带挂钩时在 Django 上获取 MultiValueDictKeyError

在运行时在 Django 中指定关系动词?

使用 BeautifulSoup 写入文件时在 Django 模板中保留空格

在 django 中删除 ForeignKey 时在相关模型上发出信号

在使用模板系统时在 Django 中使用 JQuery 刷新 div

db更改时在Django中重新加载HTML表