2012-04-27 6 views

Odpowiedz

89

Jeśli Widget to nazwa modelu i ma atrybut DateTimeField nazwie created, zapytanie będzie:

from datetime import datetime, timedelta 

time_threshold = datetime.now() - timedelta(hours=5) 
results = Widget.objects.filter(created__lt=time_threshold) 

Zauważ, że created__lt oznacza „tworzone jest mniej niż”.

+0

W jaki sposób osiągnęlibyśmy to samo, gdyby 'godziny' pochodziły z kolumny tabeli i nie byłyby wartością zakodowaną na stałe? – adkl

12
now = datetime.datetime.now() 
earlier = now - datetime.timedelta(hours=5) 
MyModel.objects.filter(my_date_field__range=(earlier,now)) 

To powinno załatwić sprawę.

+4

Ponad 5 godzin życia, nie mniej niż 5 godzin! –

+0

@DavidRobinson whoops! –

+1

Zasięg jest jednak przydatny. – radtek