我有一个由几个表单组成的表单向导(Django 1.4)。我正在尝试检查process_step
函数中的某些条件(对于中间步骤),退出表单向导并重定向到主页。当我尝试在函数HttpResponseRedirect(<homepage>)
结束时使用重定向时process_step
,它会忽略并继续执行下一个表单步骤。
问问题
700 次
2 回答
0
为了让 Django 真正呈现下一步,它需要执行 returnHttpResponse
或return render_to_response
等操作。所以很可能控制流根本不会到达HttpResponseRedirect
.
于 2012-11-09T17:23:15.107 回答
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)
您可能还想在获取清理数据之前添加一个条件,以检查当前或下一步是什么。
于 2012-11-09T21:58:25.130 回答