mirror of
				https://github.com/django/django.git
				synced 2025-10-31 01:25:32 +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 |                         year_val, month_val, day_val = v.year, v.month, v.day | ||||||
|                     except ValueError: |                     except ValueError: | ||||||
|                         pass |                         pass | ||||||
|                 else: |                 if year_val is None: | ||||||
|                     match = self.date_re.match(value) |                     match = self.date_re.match(value) | ||||||
|                     if match: |                     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 = {} |         html = {} | ||||||
|         choices = [(i, i) for i in self.years] |         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) |         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 |         # Years before 1900 work | ||||||
|         w = SelectDateWidget(years=('1899',)) |         w = SelectDateWidget(years=('1899',)) | ||||||
|         self.assertEqual( |         self.assertEqual( | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user