code: def all_valid_with_nesting(self, formsets):
          "Recursively validate all nested formsets"
          if not all_valid(formsets):
              return False
  
          for formset in formsets:
              if not formset.is_bound:
                  pass
              for form in formset:
                  if hasattr(form, 'nested_formsets'):
                      if not self.all_valid_with_nesting(form.nested_formsets):
                          return False
  
                      #TODO - find out why this breaks when extra = 1 and just adding new item with no sub items
                      if (not hasattr(form, 'cleaned_data') or not form.cleaned_data) and self.formset_has_nested_data(form.nested_formsets):
                          form._errors["__all__"] = form.error_class(["Parent object must be created when creating nested inlines."])
                          return False
          return Truf all_valid_with_nesting(self, formsets):
          "Recursively validate all nested formsets"
          if not all_valid(formsets):
              return False
  
          for formset in formsets:
              if not formset.is_bound:
                  pass
              for form in formset:
                  if hasattr(form, 'nested_formsets'):
                      if not self.all_valid_with_nesting(form.nested_formsets):
                          return False
  
                      #TODO - find out why this breaks when extra = 1 and just adding new item with no sub items
                      if (not hasattr(form, 'cleaned_data') or not form.cleaned_data) and self.formset_has_nested_data(form.nested_formsets):
                          form._errors["__all__"] = form.error_class(["Parent object must be created when creating nested inlines."])
                          return False
          return True
docs: Recursively validate all nested formsets