Django过滤器由timedelta查询集

Maz*_*zas 1 python django

有什么好的方法可以过滤响应时间晚于例如500秒的设备?

所以假设我的模型:

class Device(models.Model):
    last_response = models.DateTimeField(null=True, blank=True)
Run Code Online (Sandbox Code Playgroud)

我最好的举动是:

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
Run Code Online (Sandbox Code Playgroud)

但是我不想为此查询所有数据库。如何使它与filter一样工作for d in Device.objects.filter(..some arguments..):

Ser*_*aev 5

from django.utils import timezone
from datetime import timedelta
Device.objects.filter(last_response__lte=timezone.now()-timedelta(seconds=500))
Run Code Online (Sandbox Code Playgroud)