Django怎样用timedelta过滤queryset。

5

有什么好的方法可以过滤掉响应时间超过500秒的设备吗?

假设我的模型是:

class Device(models.Model):
    last_response = models.DateTimeField(null=True, blank=True)

我的最佳举措是:

from django.utils import timezone

for d in Device.objects.all():
    now = timezone.now()
    if d.last_response and (now - d.last_response).seconds < 500:
        # Do something

但是我不想为此查询整个数据库。我该如何使用过滤器使其工作,例如for d in Device.objects.filter(..一些参数..):

1个回答

15
from django.utils import timezone
from datetime import timedelta
Device.objects.filter(last_response__lte=timezone.now()-timedelta(seconds=500))

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接