Commits

Anonymous committed d2694de

Fixed #13592 -- Make sure the SelectDateWidget works with dates before 1900 when localization is enabled. Thanks for the report and patch, magnus.

  • Participants
  • Parent commits ecf5470

Comments (0)

Files changed (2)

File django/forms/extras/widgets.py

 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
                 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)

File tests/regressiontests/forms/extra.py

 <option value="2016">2016</option>
 </select>
 
+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 #############################################