mirror of
				https://github.com/django/django.git
				synced 2025-10-31 09:41:08 +00:00 
			
		
		
		
	Fixed #17401 -- Made SelectDateWidget.render reflect wrong value
Thanks Marcin Wrobel for the initial patch.
This commit is contained in:
		| @@ -977,10 +977,10 @@ class SelectDateWidget(Widget): | ||||
|                         year_val, month_val, day_val = v.year, v.month, v.day | ||||
|                     except ValueError: | ||||
|                         pass | ||||
|                 else: | ||||
|                 if year_val is None: | ||||
|                     match = self.date_re.match(value) | ||||
|                     if match: | ||||
|                         year_val, month_val, day_val = [int(v) for v in match.groups()] | ||||
|                         year_val, month_val, day_val = [int(val) for val in match.groups()] | ||||
|         html = {} | ||||
|         choices = [(i, i) for i in self.years] | ||||
|         html['year'] = self.create_select(name, self.year_field, value, year_val, choices, self.year_none_value) | ||||
|   | ||||
| @@ -1875,6 +1875,9 @@ class SelectDateWidgetTests(TestCase): | ||||
|             """, | ||||
|         ) | ||||
|  | ||||
|         # Even with an invalid date, the widget should reflect the entered value (#17401). | ||||
|         self.assertEqual(w.render('mydate', '2010-02-30').count('selected="selected"'), 3) | ||||
|  | ||||
|         # Years before 1900 work | ||||
|         w = SelectDateWidget(years=('1899',)) | ||||
|         self.assertEqual( | ||||
|   | ||||
		Reference in New Issue
	
	Block a user