From e6ec07dc1f9070df4dab982aa4567def924bfe01 Mon Sep 17 00:00:00 2001 From: Jannis Leidel Date: Sun, 23 May 2010 10:38:23 +0000 Subject: [PATCH] Fixed #13592 -- Make sure the SelectDateWidget works with dates before 1900 when localization is enabled. Thanks for the report and patch, magnus. git-svn-id: http://code.djangoproject.com/svn/django/trunk@13301 bcc190cf-cafb-0310-a4f2-bffc1f526a37 --- django/forms/extras/widgets.py | 2 ++ tests/regressiontests/forms/extra.py | 5 +++++ 2 files changed, 7 insertions(+) diff --git a/django/forms/extras/widgets.py b/django/forms/extras/widgets.py index 4dabafae9e..7d05942f43 100644 --- a/django/forms/extras/widgets.py +++ b/django/forms/extras/widgets.py @@ -7,6 +7,7 @@ import datetime import re from django.forms.widgets import Widget, Select +from django.utils import datetime_safe from django.utils.dates import MONTHS from django.utils.safestring import mark_safe from django.utils.formats import get_format @@ -100,6 +101,7 @@ class SelectDateWidget(Widget): except ValueError: pass else: + date_value = datetime_safe.new_date(date_value) return date_value.strftime(input_format) else: return '%s-%s-%s' % (y, m, d) diff --git a/tests/regressiontests/forms/extra.py b/tests/regressiontests/forms/extra.py index 7547901d0f..57e8e91a60 100644 --- a/tests/regressiontests/forms/extra.py +++ b/tests/regressiontests/forms/extra.py @@ -435,6 +435,11 @@ USE_L10N tests +Years before 1900 work +>>> w = SelectDateWidget(years=('1899',)) +>>> w.value_from_datadict({'date_year': '1899', 'date_month': '8', 'date_day': '13'}, {}, 'date') +'13-08-1899' + >>> translation.deactivate() # MultiWidget and MultiValueField #############################################