django - 退出并重定向到表单向导中间的主页

时间:2012-11-09 17:19:05

标签: django django-formwizard

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

2 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)

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)

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