【发布时间】:2017-08-28 16:07:27
【问题描述】:
我的 postgresql 数据库中有以下模型:
class UrlXML(models.Model):
uuid = models.UUIDField(default=uuid.uuid4, editable=False, db_index=True)
url = models.TextField()
is_active = models.BooleanField(default=True, db_index=True)
run_last_time = models.DateTimeField(blank=True, null=True)
run_frequency = models.IntegerField(default=24)
每个小时我都需要从需要下载的数据库 url 获取基于我当前时间的时间,如果上次运行的时间高于频率。
我设法创建了原始查询,但我无法在 Django Queryset 中创建它。
这是以下查询:
select (run_last_time + INTERVAL '1 hours' * run_frequency), run_frequency, NOW(), run_last_time from urlxml where is_active=True and (run_last_time + INTERVAL '1 hours' * run_frequency) <= NOW();
例子:
当前时间是2017-04-03 11:00:00
我在数据库中有两个网址:
Url A: Ran last time 2017-04-03 08:00:00,频率为6小时
Url B: Ran last time 2017-04-02 11:00:00,频率为24小时
当我在 2017-04-03 11:00:00(在 + 和 - 30 分钟的范围内)执行该函数时,它必须只给我带来 Url B,因为它最后一次运行是 24 小时以前。
【问题讨论】:
标签: django postgresql django-models django-queryset