          year_name = self.year_field % name
          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},
          )
          month_choices = list(self.months.items())
          if not self.is_required:
              month_choices.insert(0, self.month_none_value)
          month_name = self.month_field % name
 
</s> remove             attrs={**context['widget']['attrs'], 'id': 'id_%s' % month_name},
 </s> add             attrs={
                **context['widget']['attrs'],
                'id': 'id_%s' % month_name,
                'placeholder': _('Month') if self.is_required else False,
            }, </s> remove             attrs={**context['widget']['attrs'], 'id': 'id_%s' % day_name},
 </s> add             attrs={
                **context['widget']['attrs'],
                'id': 'id_%s' % day_name,
                'placeholder': _('Day') if self.is_required else False,
            },
            attrs={
                **context['widget']['attrs'],
                'id': 'id_%s' % year_name,
                'placeholder': _('Year') if self.is_required else False,
            },
          year_name = self.year_field % name
          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,
                'placeholder': _('Year') if self.is_required else False,
            },
          )
          month_choices = list(self.months.items())
          if not self.is_required:
              month_choices.insert(0, self.month_none_value)
          month_name = self.month_field % name
keep keep keep keep replace keep keep keep keep keep
 Fixed #29056 -- Fixed HTML5 validation of required SelectDateWidget.

placeholder is required for "select" with "required" attribute. 
django/forms/widgets.py