2011-05-23 35 views
0

我正在開發一個網站,它需要包含用戶必須輸入多個數據片段才能成爲一個大文件的功能。想象一下,我正在設計一個簡歷生成系統,其中簡歷長度超過5頁。用戶登錄到站點後必須輸入他/她的簡歷中將包含的所有信息,並且在過程結束時會出現一個「生成」按鈕,用戶可以通過該按鈕獲得PDF的鏈接。關於多部件形式的Django/JQuery問題

而是在三個部分使用一個巨大的表格,我設置系統,有點像這個

www.mysite.com/user-name/resume/1 

<FORM> enter some info </FORM> 

www.mysite.com/user-name/resume/2 

<FORM> enter some more info </FORM> 

www.mysite.com/user-name/resume/3 

的進入最終信息

最後,你會被重定向到

www.mysite .com/user-name/mypdf

它與pdf的鏈接(或顯示pdf)

我將所有信息都存儲在MongoDB中,因爲它非常棒,但考慮到這個系統,我有關於設計的以下問題。 1)由於恢復數據以3種不同的表單帖子的形式保存,我需要保存三次不同的時間到MongoDB(有沒有另外一種方式?)。現在,我可以想到關聯所有簡歷的最佳方式是在職位之間的會話中插入一個UUID,並在數據庫中保存每個簡歷的UUID。這樣一來,當它是時間來產生的,我只是查詢數據庫的

db.resumes.find({「DOCID」:UUID'}),我可以得到所有的作品,並構建簡歷

問題:在會話中保存此UUID是解決此問題的最佳方法,當您將多個相關數據傳入不同的表單文章時。如果需要更多的澄清,我明白。

我不知道在哪裏做重定向,因爲我使用ajax。我習慣於在Django視圖中處理重定向,但是我沒有爲這個系統使用Django表單或模型。我的問題是,如何處理以下重定向:

www.mysite.com/user-name/resume/1 - > www.mysite.com/user-name/resume/2 - > www.mysite。 com /用戶名/簡歷/ 3 - > www.mysite.com/user-name/mypdf

目前,我確保所有的發佈數據都是正確的,通過ajax發送給服務器,如果我能夠成功地保存這些數據到MongoDB,我使用這個:

$(location).attr('href',「www.mysite.com/user-name/resume/1/」);

我知道這是處理重定向的錯誤方式,因爲它只是附加到當前的URL(但它的工作原理,所以...)。據我所知,我的重定向需要在客戶端完成,但我不確定要做到這一點的最佳方法是什麼。

感謝

回答

1

如果您已經使用jQuery的話,我會建議只有一個與各界的形式和使用插件將其分割成多個子形式。我使用stepy。或者你可以自己實現類似的功能。

只有一種形式,您可以使用常規POST請求將數據發送到服務器並獲得重定向響應。

+0

謝謝了,在檢查完jQuery插件後,我最終利用jQuery.css()創建了類似的功能,併爲窗體的不同部分顯示:none和display:block。 – josephmisiti 2011-05-25 13:41:10

+0

我建議使用jQuery.hide()和jQuery.show()來顯示/隱藏jQuery元素。 – 2011-05-26 04:30:32