【问题标题】:django - exit and redirect to homepage in the middle of form wizarddjango - 在表单向导中间退出并重定向到主页
【发布时间】:2012-11-09 17:19:05
【问题描述】:

我有一个由几个表单组成的表单向导(Django 1.4)。我正在尝试检查process_step 函数中的某些条件(用于中间步骤),退出表单向导并重定向到主页。当我尝试在 process_step 函数的末尾使用 HttpResponseRedirect(<homepage>) 重定向时,它会忽略并继续执行下一个表单步骤。

【问题讨论】:

  • > 当我尝试使用 HttpResponseRedirect() 重定向时,代码是什么?你怎么试试这个?

标签: django django-formwizard


【解决方案1】:

为了让 Django 真正呈现下一步,它需要返回 HttpResponsereturn render_to_response 等。所以很可能控制流根本不会到达 HttpResponseRedirect

【讨论】:

    【解决方案2】:

    Process_step 只处理数据,它返回的内容不会被渲染。可能最好的办法是覆盖 render_next_step,尽管您也可以使用其他几个函数来处理它。

    因此,覆盖 render_next_step,并执行以下操作:

        def render_next_step(self, form, **kwargs):
            data = get_cleaned_data('2')  # or whatever your step with the flag is
            if data.get('your_flag', False):
                self.storage.reset()
                return HttpResponseRedirect()
            return super(Wizard, self).render_next_step(self, form, **kwargs)
    

    您可能还想在获取清理数据之前添加一个条件,以检查当前或下一步是什么。

    【讨论】:

      猜你喜欢
      • 2016-03-20
      • 2020-05-24
      • 2018-04-03
      • 2015-10-01
      • 2015-04-01
      • 1970-01-01
      • 2014-02-10
      • 1970-01-01
      • 2017-07-04
      相关资源
      最近更新 更多