pip install django-formtools
class ContactForm1(forms.Form): subject = forms.CharField(max_length=100) sender = forms.EmailField() class ContactForm2(forms.Form): message = forms.CharField(widget=forms.Textarea)
from formtools.wizard.views import SessionWizardView class ContactWizard(SessionWizardView): template_name = 'app_fossils/multiform.html' def done(self, form_list, **kwargs): form_data = [form.cleaned_data for form in form_list] return render(self.request, 'app_fossils/multiform.html', { 'form_data': form_data, })
path('multiform/', ContactWizard.as_view([ContactForm1, ContactForm2]), name='multiform-show'),
{% extends 'base.html' %} {% block content %} {% if wizard %} {% csrf_token %} {{ wizard.management_form }} {% if wizard.form.forms %} {{ wizard.form.management_form }} {% for form in wizard.form.forms %} {{ form.as_p }} {% endfor %} {% else %} {{ wizard.form }} {% endif %} {% endif %} {% if form_data %} You have submitted: {% for data in form_data %} {{ data }} {% endfor %} {% endif %} {% endblock %}
{{ data }}