django - 在窗体向导中退出并重定向到主页

问题描述:

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

+0

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

对于Django来说,我们需要做一个返回HttpResponsereturn render_to_response等。所以最有可能的控制流程是根本不会去HttpResponseRedirect

+0

'return HttpResponse(..)'也不起作用。 – sefakilic

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) 

您可能还需要得到清理的数据,来检查当前或下一步是什么之前添加一个条件。