2012-04-27 10 views

risposta

89

Se Widget è il nome del modello, e ha un attributo di nome DateTimeField created, la query sarebbe:

from datetime import datetime, timedelta 

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

Nota che created__lt significa "creati è inferiore".

+0

Come avremmo ottenuto la stessa cosa se "ore" provenivano dalla colonna della tabella e non era un valore codificato? – adkl

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

Questo dovrebbe fare il trucco.

+4

Più di 5 ore, non meno di 5 ore! –

+0

@DavidRobinson whoops! –

+1

La cosa dell'intervallo è comunque utile. – radtek

Problemi correlati