2015-02-09 60 views
0

我正在嘗試做什麼我有一個視圖,它有一個快捷方式,它會要求用戶在用戶重定向到嚮導之前預填一些字段。Django wizardview:如何在不驗證表單的情況下設置步驟數據

例如:

class PreFillView(): 

    def post(self,request): 
     # get the data from the form and save into request.session 
     # Then http redirect to the wizard view 

然後從該視圖中,我將其重定向到一個WizardView。在嚮導的看法,我趕上從之前的調度功能傳遞的所有信息:

class MyWizardView(NamedUrlSessionWizardView): 
    def dispatch(self,request, *args, **kwargs): 
     #parse data from request.session 
     #set step data using these data 
    # Note these data fields only partially covered the form in the wizardview, there is still a couple of fields needed to be filled in the wizard view. 

這幾乎是正常工作,但唯一的問題是,它驗證表單,並彈出場錯誤的領域,其沒有預先填充。我試過了,如果我只是重定向到嚮導視圖而沒有設置步驟數據,那很好。它不會驗證表單,所以不會顯示字段錯誤。

我對Django來說很新,也不確定我是否做得對,如果是的話,我爲當前步驟設置步驟數據後如何避免表單被驗證?任何幫助將不勝感激。

回答

1

在你嚮導視圖類中實現WizardView.get_form_initial(step)方法。

此方法獲取step數字作爲參數,它應該返回該步驟表單的初始數據的dict。

+0

該作品完美!非常感謝@Rohan – rzhomx 2015-02-09 10:23:14

+0

,它非常完美!非常感謝@Rohan。不過,我仍然有一個小問題,我在表單中還有一個clean_ [locationentry]方法來幫助在用戶輸入郵政編碼時提示可能的位置,現在它不再被初始化。我是否也應該在get_form_initial中初始化它? – rzhomx 2015-02-09 10:34:04

+0

@ rzhomx,是的,我相信你可以調用方法來獲取你想要的特定數據步驟。 – Rohan 2015-02-09 12:50:06

相關問題