Perhaps you're just thinking that it's difficult while it actually isn't? :)
def edit(request):
AFormSet = formset_factory(AForm)
BFormSet = formset_factory(BForm)
CFormSet = formset_factory(CForm)
data = request.POST or None
formsets = [
AFormSet(data, prefix='A'),
BFormSet(data, prefix='B'),
CFormSet(data, prefix='C'),
]
if all(f.is_valid() for f in formsets):
for f in formsets:
f.save()
return render_to_response('edit.html', {'formsets': formsets})