在查询时指定Django TimeStampedModel中的时间间隔

时间:2016-02-16 10:39:21

标签: python django postgresql cron

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

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

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

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

1 个答案:

答案 0 :(得分:3)

经过一番研究后我发现了方法,

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

Django使用variablename_range提供了一种在查询中提供范围的功能。