code: def is_valid(self):
          
          self.cleaned_data = {}
          self.changed_fields = []
          self.validated = False
          self._errors = {}
          self._named_errors = {}
          cleaned_data = {}
          changed_fields = []
          errors = {}
          named_errors = {}
  
          # Validate sub forms
          for name, subform in self._forms.items():
              if not subform.is_valid():
                  errors[name] = subform._errors
                  named_errors.update(subform._named_errors)
                  continue
              if subform.has_changed:
                  changed_fields.append(name)
  
          # Validate sub sets
          for name, formset in self._sets.items():
              if not formset.is_valid():
                  errors[name] = formset._errors
                  named_errors.update(formset._named_errors)
                  continue
              if formset.has_changed:
                  changed_fields.append(name)
  
          # Validate each field
          for name, field in self._fields.items():
              field.error = None
              py_value = field.validate(self)
              if field.error:
                  errors[name] = field.error
                  named_errors[field.name] = field.error
                  continue
              cleaned_data[name] = py_value
              if hasattr(field, '_deleted'):
                  cleaned_data[name] = None
                  field.has_changed = True
              if field.has_changed:
                  changed_fields.append(name)
  
          # Validate relation between fields
          for name, field in self._fields.items():
              field.validate(self, cleaned_data)
              if field.error:
                  errors[name] = field.error
                  named_errors[field.name] = field.error
                  continue
  
          if errors:
              self._errors = errors
              self._named_errors = named_errors
              return False
  
          self.changed_fields = changed_fields
          self.cleaned_data = self.clean(cleaned_data)
          self.validated = True
          return True
docs: Return whether the current values of the form fields are all valid.