Your view is returning a 200 code, so it thinks it is finishing correctly
with no errors, probably the reason you don't see any errors.

At what point do you get a blank page? Initial load? Final step? Does the
template in your done() step exist? Have you installed the
Django-debug-toolbar to examine the context of your blank page?

-James
On Jan 30, 2016 2:18 AM, "Martin Torre Castro" <[email protected]> wrote:

> 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).
>
> The only response I got is:
>
>     [23/Jan/2016 11:06:50]"GET /registration/wizard HTTP/1.1" 200 13729
>
> and a blank page. No errors in browser or Eclipse console.
>
> There's no way of googling without errors. Please help.
>
> Thanks in advance
>
> (If you guys find more comfortable stackoverflow, you can go to
> http://stackoverflow.com/q/34962499/1241715)
>
>
> *What did I do?*
>
> Firstly, I installed the formtools package with pip:
>
>     django-formtools==1.0
>     Django==1.8.3
>
>
> Following the instructions of the official docs:
>
>
>    1. Define form classes
>
>    *registration/forms.py*
>
>    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)
>
>    2. Create WizardView
>
>
> *registration/views.py *
>    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
>
>    3. Create the templates
>
>    *registration/test_step1.html*
>
>    <h1>Two fields form</h1>
>    <input id="first_field" name="first_field">
>    <input id="second_field" name="second_field">
>
>
> *registration/test_step2.html *
>    <h1>Message form</h1>
>    <input id="message" name="message">
>
>
> *registration/test_wizard.html *
>    {% extends "person/alumnos.html" %}
>    {% load i18n %}
>
>    {% block head %}
>        {{ wizard.form.media }}
>    {% endblock head %}
>
>    {% block content %}
>        <p>{% trans "Step {{wizard.steps.step1}} of
>    {{wizard.steps.count}}" %}</p>
>        <form action="" method="post">
>            {% 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 %}
>                <button name="wizard_goto_step" type="submit" value="{{
>    wizard.steps.first }}">{% trans "Beginning" %}</button>
>                <button name="wizard_goto_step" type="submit" value="{{
>    wizard.steps.prev }}">{% trans "Previous step" %}</button>
>            {% endif %}
>
>            <input type="submit" value="submit"/>
>        </form>
>    {% endblock %}
>
>    4. Add 'formtools' to my INSTALLED_APPS
>
>
> *settings.py *
>    DJANGO_APPS = (
>        # Default Django apps:
>        'django.contrib.auth',
>        'django.contrib.contenttypes',
>        'django.contrib.sessions',
>        'django.contrib.sites',
>        'django.contrib.messages',
>        'django.contrib.staticfiles',
>
>        'formtools',                 # <===== 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
>
>    5. Point my URLconf at your WizardView as_view() method.
>
>
> *registration/urls.py *
>    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'),
>    )
>
>    For the second way...
>
>
> *registration/views.py *
>    def wizard(request):
>        return WizardTest.as_view(TEST_FORMS)(request)
>
>
>
> --
> You received this message because you are subscribed to the Google Groups
> "Django users" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to [email protected].
> To post to this group, send email to [email protected].
> Visit this group at https://groups.google.com/group/django-users.
> To view this discussion on the web visit
> https://groups.google.com/d/msgid/django-users/333f094e-3b3f-4235-b3df-1b5d76c3004f%40googlegroups.com
> <https://groups.google.com/d/msgid/django-users/333f094e-3b3f-4235-b3df-1b5d76c3004f%40googlegroups.com?utm_medium=email&utm_source=footer>
> .
> For more options, visit https://groups.google.com/d/optout.
>

-- 
You received this message because you are subscribed to the Google Groups 
"Django users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
Visit this group at https://groups.google.com/group/django-users.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/django-users/CA%2Be%2BciXR%3DgaO142Q4mLVrtw4hEtVnbV7L2N49zeNOhp9Y1Fd4A%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to