Commit 60f4b7c4 authored by Jacob Kaplan-Moss's avatar Jacob Kaplan-Moss
Browse files

[1.1.X] Fixed #1104: set `FormWizard.extra_context` in `__init__` to avoid context leakage.

Backport of [12644] from trunk.

git-svn-id: http://code.djangoproject.com/svn/django/branches/releases/1.1.X@12645 bcc190cf-cafb-0310-a4f2-bffc1f526a37
parent 34a3b7b6
Loading
Loading
Loading
Loading
+11 −5
Original line number Diff line number Diff line
@@ -16,19 +16,25 @@ from django.utils.translation import ugettext_lazy as _
from django.contrib.formtools.utils import security_hash

class FormWizard(object):
    # Dictionary of extra template context variables.
    extra_context = {}

    # The HTML (and POST data) field name for the "step" variable.
    step_field_name="wizard_step"

    # METHODS SUBCLASSES SHOULDN'T OVERRIDE ###################################

    def __init__(self, form_list, initial=None):
        "form_list should be a list of Form classes (not instances)."
        """
        Start a new wizard with a list of forms.
        
        form_list should be a list of Form classes (not instances).
        """
        self.form_list = form_list[:]
        self.initial = initial or {}
        self.step = 0 # A zero-based counter keeping track of which step we're in.

        # Dictionary of extra template context variables.
        extra_context = {}

        # A zero-based counter keeping track of which step we're in.
        self.step = 0 

    def __repr__(self):
        return "step: %d\nform_list: %s\ninitial_data: %s" % (self.step, self.form_list, self.initial)