docs: def get_field_context(self, bound_field):
          """
          Returns the context which is used when rendering a form field to HTML.
  
          The generated template context will contain the following variables:
  
          * form: `Form` instance
          * field: `BoundField` instance of the field
          * field_id: Field ID to use in `<label for="..">`
          * field_name: Name of the form field to render
          * errors: `ErrorList` instance with errors of the field
          * required: Boolean flag to signal if the field is required or not
          * label: The label text of the field
          * label_css_class: The optional label CSS class, might be `None`
          * help_text: Optional help text for the form field. Might be `None`
          * container_css_class: The CSS class for the field container.
          * widget_class_name: Lowercased version of the widget class name (e.g. 'textinput')
          * widget_input_type: `input_type` property of the widget instance,
            falls back to `widget_class_name` if not available.
  
          :return: Template context for field rendering.
          """
          widget = bound_field.field.widget
          widget_class_name = widget.__class__.__name__.lower()
  
          # Check if we have an overwritten id in widget attrs,
          # if not use auto_id of bound field.
          field_id = widget.attrs.get('id') or bound_field.auto_id
          if field_id:
              field_id = widget.id_for_label(field_id)
  
          return {
              'form': self,
              'field': bound_field,
              'field_id': field_id,
              'field_name': bound_field.name,
              'errors': bound_field.errors,
              'required': bound_field.field.required,
              'label': bound_field.label,
              'label_css_class': self.get_field_label_css_class(bound_field),
              'help_text': mark_safe(bound_field.help_text) if bound_field.help_text else None,
              'container_css_class': self.get_field_container_css_class(bound_field),
              'widget_class_name': widget_class_name,
              'widget_input_type': getattr(widget, 'input_type', None) or widget_class_name
          }