1
0
mirror of https://github.com/django/django.git synced 2025-11-07 07:15:35 +00:00

Fixed #29056 -- Fixed HTML5 validation of required SelectDateWidget.

placeholder is required for "select" with "required" attribute.
This commit is contained in:
Hasan Ramezani
2019-05-05 01:26:37 +02:00
committed by Mariusz Felisiak
parent ef9f2eb69c
commit f038214d91
3 changed files with 59 additions and 3 deletions

View File

@@ -979,7 +979,11 @@ class SelectDateWidget(Widget):
date_context['year'] = self.select_widget(attrs, choices=year_choices).get_context(
name=year_name,
value=context['widget']['value']['year'],
attrs={**context['widget']['attrs'], 'id': 'id_%s' % year_name},
attrs={
**context['widget']['attrs'],
'id': 'id_%s' % year_name,
'placeholder': _('Year') if self.is_required else False,
},
)
month_choices = list(self.months.items())
if not self.is_required:
@@ -988,7 +992,11 @@ class SelectDateWidget(Widget):
date_context['month'] = self.select_widget(attrs, choices=month_choices).get_context(
name=month_name,
value=context['widget']['value']['month'],
attrs={**context['widget']['attrs'], 'id': 'id_%s' % month_name},
attrs={
**context['widget']['attrs'],
'id': 'id_%s' % month_name,
'placeholder': _('Month') if self.is_required else False,
},
)
day_choices = [(i, i) for i in range(1, 32)]
if not self.is_required:
@@ -997,7 +1005,11 @@ class SelectDateWidget(Widget):
date_context['day'] = self.select_widget(attrs, choices=day_choices,).get_context(
name=day_name,
value=context['widget']['value']['day'],
attrs={**context['widget']['attrs'], 'id': 'id_%s' % day_name},
attrs={
**context['widget']['attrs'],
'id': 'id_%s' % day_name,
'placeholder': _('Day') if self.is_required else False,
},
)
subwidgets = []
for field in self._parse_date_fmt():