Short answer: No, I’m not aware of any “simple” solution to this.
Quoting from my previous post:
But what makes is relatively easy for us to process is that each parent element only has one subordinate element, which is a formset.
If you look at a sample prefix we use, ‘t-1-r-2-d-3’, the top level formset has the prefix ‘t’. When I bind the submitted data to the formset, I can then iterate over each form. Each form has its own index within the list of forms in the formset, the data associated with it, along with a subordinate formset. The prefix for the second level is ‘t-current_index-r’, which is intrinsically related to the top level instance that is currently being processed within the iteration of the parent formset.
This sample prefix would then be the fourth instance of the ‘d’ form within the third instance of the ‘r’ form within the second instance of the ‘t’ form.
This can be of arbitrary depth by making this processing a recursive function situation, where at any given point you’re processing the next level down, passing through the “prefix-to-this-point”, along with whatever other information may be needed such as the parent class type and pk.