Loading django/contrib/formtools/wizard/views.py +21 −7 Original line number Diff line number Diff line Loading @@ -257,11 +257,7 @@ class WizardView(TemplateView): # form. (This makes stepping back a lot easier). wizard_goto_step = self.request.POST.get('wizard_goto_step', None) if wizard_goto_step and wizard_goto_step in self.get_form_list(): self.storage.current_step = wizard_goto_step form = self.get_form( data=self.storage.get_step_data(self.steps.current), files=self.storage.get_step_files(self.steps.current)) return self.render(form) return self.render_goto_step(wizard_goto_step) # Check if form was refreshed management_form = ManagementForm(self.request.POST, prefix=self.prefix) Loading Loading @@ -309,6 +305,17 @@ class WizardView(TemplateView): self.storage.current_step = next_step return self.render(new_form, **kwargs) def render_goto_step(self, goto_step, **kwargs): """ This method gets called when the current step has to be changed. `goto_step` contains the requested step to go to. """ self.storage.current_step = goto_step form = self.get_form( data=self.storage.get_step_data(self.steps.current), files=self.storage.get_step_files(self.steps.current)) return self.render(form) def render_done(self, form, **kwargs): """ This method gets called when all forms passed. The method should also Loading Loading @@ -652,8 +659,7 @@ class NamedUrlWizardView(WizardView): """ wizard_goto_step = self.request.POST.get('wizard_goto_step', None) if wizard_goto_step and wizard_goto_step in self.get_form_list(): self.storage.current_step = wizard_goto_step return redirect(self.get_step_url(wizard_goto_step)) return self.render_goto_step(wizard_goto_step) return super(NamedUrlWizardView, self).post(*args, **kwargs) def get_context_data(self, form, **kwargs): Loading @@ -674,6 +680,14 @@ class NamedUrlWizardView(WizardView): self.storage.current_step = next_step return redirect(self.get_step_url(next_step)) def render_goto_step(self, goto_step, **kwargs): """ This method gets called when the current step has to be changed. `goto_step` contains the requested step to go to. """ self.storage.current_step = goto_step return redirect(self.get_step_url(goto_step)) def render_revalidation_failure(self, failed_step, form, **kwargs): """ When a step fails, we have to redirect the user to the first failing Loading docs/ref/contrib/formtools/form-wizard.txt +11 −0 Original line number Diff line number Diff line Loading @@ -454,6 +454,17 @@ Advanced ``WizardView`` methods def process_step_files(self, form): return self.get_form_step_files(form) .. method:: WizardView.render_goto_step(step, goto_step, **kwargs) .. versionchanged:: 1.6 This method is called when the step should be changed to something else than the next step. By default, this method just stores the requested step ``goto_step`` in the storage and then renders the new step. If you want to store the entered data of the current step before rendering the next step, you can overwrite this method. .. method:: WizardView.render_revalidation_failure(step, form, **kwargs) When the wizard thinks all steps have passed it revalidates all forms with Loading Loading
django/contrib/formtools/wizard/views.py +21 −7 Original line number Diff line number Diff line Loading @@ -257,11 +257,7 @@ class WizardView(TemplateView): # form. (This makes stepping back a lot easier). wizard_goto_step = self.request.POST.get('wizard_goto_step', None) if wizard_goto_step and wizard_goto_step in self.get_form_list(): self.storage.current_step = wizard_goto_step form = self.get_form( data=self.storage.get_step_data(self.steps.current), files=self.storage.get_step_files(self.steps.current)) return self.render(form) return self.render_goto_step(wizard_goto_step) # Check if form was refreshed management_form = ManagementForm(self.request.POST, prefix=self.prefix) Loading Loading @@ -309,6 +305,17 @@ class WizardView(TemplateView): self.storage.current_step = next_step return self.render(new_form, **kwargs) def render_goto_step(self, goto_step, **kwargs): """ This method gets called when the current step has to be changed. `goto_step` contains the requested step to go to. """ self.storage.current_step = goto_step form = self.get_form( data=self.storage.get_step_data(self.steps.current), files=self.storage.get_step_files(self.steps.current)) return self.render(form) def render_done(self, form, **kwargs): """ This method gets called when all forms passed. The method should also Loading Loading @@ -652,8 +659,7 @@ class NamedUrlWizardView(WizardView): """ wizard_goto_step = self.request.POST.get('wizard_goto_step', None) if wizard_goto_step and wizard_goto_step in self.get_form_list(): self.storage.current_step = wizard_goto_step return redirect(self.get_step_url(wizard_goto_step)) return self.render_goto_step(wizard_goto_step) return super(NamedUrlWizardView, self).post(*args, **kwargs) def get_context_data(self, form, **kwargs): Loading @@ -674,6 +680,14 @@ class NamedUrlWizardView(WizardView): self.storage.current_step = next_step return redirect(self.get_step_url(next_step)) def render_goto_step(self, goto_step, **kwargs): """ This method gets called when the current step has to be changed. `goto_step` contains the requested step to go to. """ self.storage.current_step = goto_step return redirect(self.get_step_url(goto_step)) def render_revalidation_failure(self, failed_step, form, **kwargs): """ When a step fails, we have to redirect the user to the first failing Loading
docs/ref/contrib/formtools/form-wizard.txt +11 −0 Original line number Diff line number Diff line Loading @@ -454,6 +454,17 @@ Advanced ``WizardView`` methods def process_step_files(self, form): return self.get_form_step_files(form) .. method:: WizardView.render_goto_step(step, goto_step, **kwargs) .. versionchanged:: 1.6 This method is called when the step should be changed to something else than the next step. By default, this method just stores the requested step ``goto_step`` in the storage and then renders the new step. If you want to store the entered data of the current step before rendering the next step, you can overwrite this method. .. method:: WizardView.render_revalidation_failure(step, form, **kwargs) When the wizard thinks all steps have passed it revalidates all forms with Loading