Commit d7e18567 authored by Malcolm Tredinnick's avatar Malcolm Tredinnick
Browse files

[1.0.X] Fixed #3501 -- Fixed date filtering in querysets for nullable date...

[1.0.X] Fixed #3501 -- Fixed date filtering in querysets for nullable date fields. Only affects SQLite.

Backport of r9466 from trunk.


git-svn-id: http://code.djangoproject.com/svn/django/branches/releases/1.0.X@9468 bcc190cf-cafb-0310-a4f2-bffc1f526a37
parent 197892ab
Loading
Loading
Loading
Loading
+4 −2
Original line number Diff line number Diff line
@@ -179,6 +179,8 @@ class SQLiteCursorWrapper(Database.Cursor):
        return query % tuple("?" * num_params)

def _sqlite_extract(lookup_type, dt):
    if dt is None:
        return None
    try:
        dt = util.typecast_timestamp(dt)
    except (ValueError, TypeError):
+11 −1
Original line number Diff line number Diff line
@@ -27,7 +27,7 @@ class Movie(models.Model):
    name = models.CharField(max_length=60)

class Party(models.Model):
    when = models.DateField()
    when = models.DateField(null=True)

class Event(models.Model):
    when = models.DateTimeField()
@@ -93,6 +93,16 @@ u''
>>> [p.when for p in Party.objects.filter(when__year='1998')]
[datetime.date(1998, 12, 31)]

# Date filtering was failing with NULL date values in SQLite (regression test
# for #3501, amongst other things).
>>> _ = Party.objects.create()
>>> p = Party.objects.filter(when__month=1)[0]
>>> p.when
datetime.date(1999, 1, 1)
>>> l = Party.objects.filter(pk=p.pk).dates("when", "month")
>>> l[0].month == 1
True

# Check that get_next_by_FIELD and get_previous_by_FIELD don't crash when we
# have usecs values stored on the database
#