docs: def errors(self, instance):
          """Run all field validators and return a dict of errors.
  
          The keys of the resulting dict coorespond to field
          names. instance can be a dict (ie, form.cleaned_data), a form,
          a formset, or a model instance.
  
          If instance is a form, full_clean() will be called if the form
          is bound.
  
          If instance is a formset, full_clean() will be called on each
          member form, if bound.
          """
  
          if isinstance(instance, dict):
              return self._validate(instance)
  
          elif isinstance(instance, forms.BaseForm):
              if instance.is_bound and instance.is_valid():
                  return self._validate(instance.cleaned_data)
  
              return self._validate(dict(
                  [
                      (f, instance.initial.get(f, instance[f].value()))
                      for f in self.validators
                      ]
                  ))
  
          elif isinstance(instance, formsets.BaseFormSet):
              if instance.can_delete:
                  validate_forms = [
                      form for form in instance.initial_forms
                      if not instance._should_delete_form(form)
                      ] + [
                      form for form in instance.extra_forms
                      if (form.has_changed() and
                          not instance._should_delete_form(form))
                      ]
  
                  return [
                      self.errors(f)
                      for f in validate_forms
                      ]
              else:
                  validate_forms = instance.initial_forms + [
                      form for form in instance.extra_forms
                      if form.has_changed()
                      ]
                  return [self.errors(f) for f in validate_forms]
  
          elif isinstance(instance, models.Model):
              return self._validate(dict(
                  [(f, getattr(instance, f)) for f in self.validators]
                  ))