Django formtools wizard produces blank page (No error returned)
<p>I'm trying to use the formwizard in formtools package with no success (I was able to do it when the package was inside Django in earlier versions). </p>

<p>The only response I got is:</p>

<pre><code>[23/Jan/2016 11:06:50]"GET /registration/wizard HTTP/1.1" 200 13729
</code></pre>

<p>and a blank page. No errors in browser or Eclipse console.</p>

<p>There's no way of googling without errors. Please help.</p>

<p>Thanks in advance</p>

<p><strong>What did I do?</strong> </p>

<p>Firstly, I installed the formtools package with pip:</p>

<pre><code>django-formtools==1.0
Django==1.8.3
</code></pre>

<p>Following the instructions of the official docs:</p>

<ol>
<li><p>Define form classes</p>

<p><strong>registration/forms.py</strong></p>

<pre><code>class StepForm1(forms.Form):
    first_field = forms.CharField(max_length=100)
    second_field = forms.CharField()

class StepForm2(forms.Form):
    message = forms.CharField(widget=forms.Textarea)
</code></pre></li>
<li><p>Create WizardView</p>

<p><strong>registration/views.py</strong></p>

<pre><code>TEST_TEMPLATES = {"test_step_1": "registration/test_step1.html", "test_step_2": "registration/test_step2.html", }

from formtools.wizard.views import SessionWizardView

class WizardTest(SessionWizardView):
    template_name = 'registration/test_wizard.html'

    # Return templates for each step
    def get_templates_name(self):
        return [TEST_TEMPLATES[self.steps.current]]

    # Method called when all is done
    def done(self, form_list, **kwargs):

        # return HttpResponseRedirect('/url-to-redirect-to/') 

        # We return the final template with the info
        return render_to_response('test_done.html', {
                                   'form_data':[form.cleaned_data for form in form_list],
                                   })

    # THESE METHODS BELOW ARE NOT NEEDED, BUT COMMENTED FOR FUTURE USE

    # Not strictly needed. Returns data for a step
    # or None if form is not valid
    # def get_cleaned_data_for_step(self, step):
    #     return None

    # Form data postprocessing in a concrete wizard step
    # def process_step(self, form):
    #     return self.get_form_step_data(form)

    # Handles value from a step before storing them into wizard
    # def get_form_step_data(self, form):
    #     return form.data
</code></pre></li>
<li><p>Create the templates</p>

<p><strong>registration/test_step1.html</strong></p>

<pre><code>&lt;h1&gt;Two fields form&lt;/h1&gt;
&lt;input id="first_field" name="first_field"&gt;
&lt;input id="second_field" name="second_field"&gt;
</code></pre>

<p><strong>registration/test_step2.html</strong></p>

<pre><code>&lt;h1&gt;Message form&lt;/h1&gt;
&lt;input id="message" name="message"&gt;
</code></pre>

<p><strong>registration/test_wizard.html</strong></p>

<pre><code>{% extends "person/alumnos.html" %}
{% load i18n %}

{% block head %}
    {{ wizard.form.media }}
{% endblock head %}

{% block content %}
&lt;p&gt;{% trans "Step {{wizard.steps.step1}} of {{wizard.steps.count}}" %}&lt;/p&gt;

&lt;form action="" method="post"&gt;
{% csrf_token %}

{{ wizard.management_form }}

{% if wizard.form.forms  %}
    {{ wizard.form.management_form }}
    {% for form in wizard.form.forms %}
        {{form}}
    {% endfor %}
{% else %}
    {{ wizard.form }}
{% endif %}

{% if wizard.steps.prev %}
&lt;button name="wizard_goto_step" type="submit" value="{{ wizard.steps.first }}"&gt;{% trans "Beginning" %}&lt;/button&gt;
&lt;button name="wizard_goto_step" type="submit" value="{{ wizard.steps.prev }}"&gt;{% trans "Previous step" %}&lt;/button&gt;
{% endif %}
&lt;input type="submit" value="submit"/&gt;

&lt;/form&gt;

{% endblock %}
</code></pre></li>
<li><p>Add 'formtools' to my INSTALLED_APPS</p>

<p><strong>settings.py</strong></p>

<pre><code>DJANGO_APPS = (
    # Default Django apps:
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.sites',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'formtools',                 # &lt;===== HERE

    # Useful template tags:
    # 'django.contrib.humanize',

    # Admin panel and documentation:
    'django.contrib.admin',
    # 'django.contrib.admindocs',
)

# Apps specific for this project go here.
LOCAL_APPS = (
    'person',
    'registration',
    'teaching',
    'utils',
)

# See: https://docs.djangoproject.com/en/dev/ref/settings/#installed-apps
INSTALLED_APPS = DJANGO_APPS + LOCAL_APPS
</code></pre></li>
<li>Point my URLconf at your WizardView as_view() method.</li>
</ol>

<p><strong>registration/urls.py</strong></p>

<pre><code>from registration.forms import StepForm1, StepForm2
TEST_FORMS = [("test_step_1", StepForm1), ("test_step_2", StepForm2), ]

from registration.views import WizardTest

# I tried in two ways, none of them worked

urlpatterns = patterns('',
         url(r'^wizard$', WizardTest.as_view(TEST_FORMS), name='wizard_test'),
         url(r'^wizard2$', views.wizard, name='wizard_test'),
)
</code></pre>

<p>For the second way...</p>

<p><strong>registration/views.py</strong></p>

<pre><code>def wizard(request):
    return WizardTest.as_view(TEST_FORMS)(request)
</code></pre>