Как сделать так, чтобы представление показывало многоступенчатую форму, в которой есть формы и наборы форм
Я хочу использовать многоступенчатую форму в сочетании с некоторыми наборами форм в 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
})