Commit 8f168976 authored by Jannis Leidel's avatar Jannis Leidel
Browse files

Fixed #17580 -- Made sure datetime.date instances are correctly handled when...

Fixed #17580 -- Made sure datetime.date instances are correctly handled when being passed to a DateTimeField fields and the timezone support is enabled by making it aware using the default timezone.

git-svn-id: http://code.djangoproject.com/svn/django/trunk@17392 bcc190cf-cafb-0310-a4f2-bffc1f526a37
parent 6ae393d7
Loading
Loading
Loading
Loading
+5 −1
Original line number Diff line number Diff line
@@ -748,7 +748,11 @@ class DateTimeField(DateField):
        if isinstance(value, datetime.datetime):
            return value
        if isinstance(value, datetime.date):
            return datetime.datetime(value.year, value.month, value.day)
            value = datetime.datetime(value.year, value.month, value.day)
            if settings.USE_TZ:
                default_timezone = timezone.get_default_timezone()
                value = timezone.make_aware(value, default_timezone)
            return value

        value = smart_str(value)

+7 −0
Original line number Diff line number Diff line
@@ -261,6 +261,13 @@ class NewDatabaseTests(BaseDateTimeTests):
        # naive datetimes are interpreted in local time
        self.assertEqual(event.dt, dt.replace(tzinfo=EAT))

    @requires_tz_support
    def test_datetime_from_date(self):
        dt = datetime.date(2011, 9, 1)
        Event.objects.create(dt=dt)
        event = Event.objects.get()
        self.assertEqual(event.dt, datetime.datetime(2011, 9, 1, tzinfo=EAT))

    @requires_tz_support
    @skipIf(sys.version_info < (2, 6), "this test requires Python >= 2.6")
    @skipUnlessDBFeature('supports_microsecond_precision')