Как сделать так, чтобы представление показывало многоступенчатую форму, в которой есть формы и наборы форм

Я хочу использовать многоступенчатую форму в сочетании с некоторыми наборами форм в Django, но я понимаю, что мне нужно больше опыта в этом вопросе. Я также вижу, что документации по этому вопросу почти нет, а то немногое, что я нашел, делает многие вещи само собой разумеющимися. Не могли бы вы помочь мне понять, как создать представление, которое служит в качестве многошаговой формы и сохраняет значения форм и наборов форм? Ранее я уже использовал JS для мастера, единственное, чего не хватает, это сохранения значений в базе данных. спасибо :D

Views.py

def create_Presupuestos(request):
   extra_forms = 1
   ParteFormSet = formset_factory(PresupuestosParteForm, extra=extra_forms, max_num=20)
   ManoObraFormSet = formset_factory(PresupuestosManoObraForm, extra=extra_forms, max_num=20)
   PagosFormSet = formset_factory(PresupuestosPagosForm, extra=extra_forms, max_num=20)
   presupuestosclientesform=PresupuestosClientesForm(request.POST or None)
   presupuestosvehiculosform=PresupuestosVehiculosForm(request.POST or None)
   presupuestosparteform=PresupuestosParteForm(request.POST or None)
   presupuestosmanoobraform=PresupuestosManoObraForm(request.POST or None)
   presupuestospagosform=PresupuestosPagosForm(request.POST or None)
   presupuestosfotosform=PresupuestosFotosForm(request.POST or None)

   if request.method == 'POST':
       formset = ParteFormSet(request.POST, request.FILES)
       manoObra_formset = ManoObraFormSet(request.POST, request.FILES,prefix='manoobra')
       pagos_formset = PagosFormSet(request.POST, request.FILES, prefix='pagos')
       if formset.is_valid() and manoObra_formset.is_valid() and pagos_formset.is_valid():
           presupuestosclientesform.save()
           return redirect('presupuestos:index')
   else:
       formset = ParteFormSet()
       manoObra_formset = ManoObraFormSet(prefix='manoobra')
       pagos_formset = PagosFormSet(prefix='pagos')
       presupuestosfotosform = PresupuestosFotosForm(request.POST or None)

   return render(request,'Presupuestos/new-customer.html',{
       'presupuestosclientesform':presupuestosclientesform,
       'presupuestosvehiculosform':presupuestosvehiculosform,
       'presupuestosparteform':presupuestosparteform,
       'presupuestosmanoobraform':presupuestosmanoobraform,
       'presupuestospagosform':presupuestospagosform,
       'presupuestosfotosform':presupuestosfotosform,
       'formset':formset,
       'manoObra_formset':manoObra_formset,
       'pagos_formset':pagos_formset
   })

Вернуться на верх