

@method_decorator(csrf_protect)
def __call__(self, request, *args, **kwargs):
    '\n        Main method that does all the hard work, conforming to the Django view\n        interface.\n        '
    if ('extra_context' in kwargs):
        self.extra_context.update(kwargs['extra_context'])
    current_step = self.get_current_or_first_step(request, *args, **kwargs)
    self.parse_params(request, *args, **kwargs)
    previous_form_list = []
    for i in range(current_step):
        f = self.get_form(i, request.POST)
        if (not self._check_security_hash(request.POST.get(('hash_%d' % i), ''), request, f)):
            return self.render_hash_failure(request, i)
        if (not f.is_valid()):
            return self.render_revalidation_failure(request, i, f)
        else:
            self.process_step(request, f, i)
            previous_form_list.append(f)
    if (request.method == 'POST'):
        form = self.get_form(current_step, request.POST)
    else:
        form = self.get_form(current_step)
    if form.is_valid():
        self.process_step(request, form, current_step)
        next_step = (current_step + 1)
        if (next_step == self.num_steps()):
            return self.done(request, (previous_form_list + [form]))
        else:
            form = self.get_form(next_step)
            self.step = current_step = next_step
    return self.render(next_step, request, current_step)

dataset/ETHPy150Open AppScale/appscale/AppServer/lib/django-1.4/django/contrib/formtools/wizard/legacy.py FormWizard.__call__/VarMisuse@319/446 `form`->`next_step`