django - 在窗体向导中退出并重定向到主页
问题描述:
我有一个表单向导,由几个表单组成(Django 1.4)。我试图检查process_step
函数中的某些条件(对于中间步骤),退出表单向导并重定向到主页。当我尝试在process_step
函数的末尾尝试重定向HttpResponseRedirect(<homepage>)
时,它会忽略并继续下一个表单步骤。django - 在窗体向导中退出并重定向到主页
答
对于Django来说,我们需要做一个返回HttpResponse
或return 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)
您可能还需要得到清理的数据,来检查当前或下一步是什么之前添加一个条件。
>当我尝试使用HttpResponseRedirect重定向() 什么是代码?你怎么试试这个? –