2012-11-09 78 views
0

我有一個表單嚮導,由幾個表單組成(Django 1.4)。我試圖檢查process_step函數中的某些條件(對於中間步驟),退出表單嚮導並重定向到主頁。當我嘗試在process_step函數的末尾嘗試重定向HttpResponseRedirect(<homepage>)時,它會忽略並繼續下一個表單步驟。django - 在窗體嚮導中退出並重定向到主頁

+0

>當我嘗試使用HttpResponseRedirect重定向() 什麼是代碼?你怎麼試試這個? –

回答

0

對於Django來說,我們需要做一個返回HttpResponsereturn render_to_response等。所以最有可能的控制流程是根本不會去HttpResponseRedirect

+0

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

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) 

您可能還需要得到清理的數據,來檢查當前或下一步是什麼之前添加一個條件。