Skip to content Skip to sidebar Skip to footer

Looking Up Relative Dates From Django Datetimefield

model: class MyClass(models.Model): car = models.ForeignKey(Car) date = models.DateTimeField(auto_now=True, auto_now_add=True) sql: SELECT car FROM cars_myclass WHERE date

Solution 1:

Pass datetime.datetime object (substracted by datetime.timedelta object):

>>>import datetime>>>now = datetime.datetime.now()>>>now
datetime.datetime(2013, 12, 29, 21, 54, 30, 836000)
>>>now - datetime.timedelta(days=1)
datetime.datetime(2013, 12, 28, 21, 54, 30, 836000)

importdatetimecars= MyClass.objects.filter(date__lt=datetime.datetime.now() - datetime.timedelta(days=1))

UPDATE Comment by Mikko Ohtamaa:

Also to avoid problems with timezones I recommend using timezone.now() instead of datetime.datetime.now() (available since Django 1.4)

import datetime
from django.utils import timezone

cars = MyClass.objects.filter(date__lt=timezone.now() - datetime.timedelta(days=1))

Post a Comment for "Looking Up Relative Dates From Django Datetimefield"