Próbuję napisać zapytanie Django dla widżetów, które mają więcej niż 5 godzin i jestem trochę zagubiony. Model widgetu ma DateTimeField
, który jest wypełniony czasem utworzenia widgetu.Datetime zapytania Django dla obiektów starszych niż 5 godzin
Odpowiedz
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ż”.
now = datetime.datetime.now()
earlier = now - datetime.timedelta(hours=5)
MyModel.objects.filter(my_date_field__range=(earlier,now))
To powinno załatwić sprawę.
Ponad 5 godzin życia, nie mniej niż 5 godzin! –
@DavidRobinson whoops! –
Zasięg jest jednak przydatny. – radtek
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