2016-10-05 18 views
0

応答が、たとえば500秒より後であったデバイスをフィルタリングするのに良い方法はありますか?timedeltaさんによるDjango filter queryset

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(..some arguments..):のように、フィルタでどのように動作させることができますか?

答えて

2
from django.utils import timezone 
from datetime import timedelta 
Device.objects.filter(last_response__lte=timezone.now()-timedelta(seconds=500)) 
関連する問題