如何在Django中的多步骤表单向导中创建一个选择按钮,以便在不继续下一步的情况下呈现输出?

如何在Django中的多步骤表单向导中创建一个选择按钮,以便在不继续下一步的情况下呈现输出?,django,django-forms,django-formwizard,django-formtools,Django,Django Forms,Django Formwizard,Django Formtools,我是Django新手,我正在使用Django formtools制作一个具有多步骤表单的项目。问题是,在我的Step2表单中,我需要在后端传递一些选择字段来执行一些计算,然后呈现输出。用户可以根据输出随时进行更改。我做了一个apply changes按钮,该按钮应触发后端进程,如果用户决定完成所选更改,则执行一个下一步按钮。但是,当我单击应用更改按钮时,它会引导我进入下一步 这是我的HTML代码: <form action="" method="POST"> {% csrf_to

我是Django新手,我正在使用
Django formtools
制作一个具有多步骤表单的项目。问题是,在我的Step2表单中,我需要在后端传递一些选择字段来执行一些计算,然后呈现输出。用户可以根据输出随时进行更改。我做了一个
apply changes
按钮,该按钮应触发后端进程,如果用户决定完成所选更改,则执行一个
下一步
按钮。但是,当我单击
应用更改
按钮时,它会引导我进入下一步

这是我的
HTML
代码:

<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 %}
      {{ form }} # three selection fields
      <button name="apply_changes">Apply Changes</button>
  {% endif %}

  {% if wizard.steps.prev %}
      <button name="wizard_goto_step" type="submit" value="{{ wizard.steps.prev }}">{% trans '&#8249; Previous Step' %}</button>
  {% endif %}
  <input type="submit" value="{% trans 'Finish' %}"> 
</form>

我需要帮助,知道如何正确地做到这一点。提前谢谢

因此,对于遇到与我相同问题的未来django开发人员,以下是我问题的答案:

1) 验证步骤2中的数据,该数据暂时为我的选择字段的默认值;和 2) 覆盖
post
方法,使用
goto_步骤
向导功能加载当前页面,并将其嵌入
apply changes
按钮中

然后你就可以走了!一旦用户单击
applychanges
按钮,页面将重新加载,输出将呈现在表单中


但是仍然需要对其进行优化:D

因此,对于遇到与我相同问题的未来django开发人员,以下是我问题的答案:

1) 验证步骤2中的数据,该数据暂时为我的选择字段的默认值;和 2) 覆盖
post
方法,使用
goto_步骤
向导功能加载当前页面,并将其嵌入
apply changes
按钮中

然后你就可以走了!一旦用户单击
applychanges
按钮,页面将重新加载,输出将呈现在表单中

但仍需对其进行优化:D

def get_context_data(self, form, **kwargs):

  context = super(StepWizard, self).get_context_data(form=form, **kwargs)

  if self.steps.current == 'step_1':
    # save step 1 data to sessions

  if self.steps.current == 'step_2':
    step1_data = self.get_all_cleaned_data()
    # if apply changes button is clicked
      data = self.request.POST.get('apply_changes')
      # process data
      # add output to context
  return context