docs: def full_clean(self, *args, **kwargs):
          """
          The full_clean method is hijacked to apply special treatment to invalid
          field inputs. For example adding extra options/classes to widgets.
          """
          super().full_clean(*args, **kwargs)
          for field in self.errors:
              if field != NON_FIELD_ERRORS:
                  self.apply_widget_invalid_options(field)