2013-01-10 67 views
0

我有一個帶有表單的Django頁面。我有一些視圖代碼處理正常的表單,但是如果可用的話,用來自用戶會話的初始數據預先填充表單。這樣當用戶返回到這個表單時,他們會看到以前選擇的選項(是的,表單非常廣泛)。Django加載初始數據可防止顯示錯誤

我的看法,潘岳:

def myView(request): 
    ... 
    form = ProjectInfoForm(request.POST or None) 
    if form.is_valid(): 
     # process form, including a redirect 
     ... 

    # if there is form data in the session, let's use that 
    # to initaliaze our from with data 
    if key in request.session: 
     form = ProjectInfoForm(
      initial={ 
       'model': request.session.get('model'), 
       ... 
      } 
     ) 
    return render_to_response(template_name, { 
     ... 
    }, RequestContext(request)) 

問題是:如果我加載會話數據,則該頁面不顯示任何錯誤消息。表單沒有通過驗證,我只是沒有得到任何輸出。這裏與initial有衝突嗎?

任何幫助將不勝感激。

回答

1

那麼,從這段代碼中,如果找到會話數據,那麼你完全重新初始化表單:包含POST數據和任何錯誤的原始驗證實例現在已被處置。如果請求不是POST,推測你只想輸入第二個if

+0

哈哈。當它那麼簡單時,我喜歡它!謝謝丹尼爾。 –