Reputation: 307
What could be nice way to filter devices which response was later than, for example, 500 seconds?
So assume my model:
class Device(models.Model):
last_response = models.DateTimeField(null=True, blank=True)
My best move was:
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
But I don't want to query all database for this. How can I make it work with filter, like for d in Device.objects.filter(..some arguments..):
?
Upvotes: 6
Views: 5019
Reputation: 7787
from django.utils import timezone
from datetime import timedelta
Device.objects.filter(last_response__lte=timezone.now()-timedelta(seconds=500))
Upvotes: 16