2011-05-22 99 views
0

我正在製作一個具有3個步驟表單過程的網站。Django:在文件上傳中處理瀏覽器的BACK按鈕

第1步:讓我知道你要上傳多少個文件

第2步:生成取決於文件的形式##,並允許上傳

第3步:付款

假設有人前進到步驟3,但是然後改變主意並且全部返回到步驟1.

步驟1很容易,我所要做的就是在會話中放置一個變量,然後更新現有的記錄是否有活動的訂單發生(inst創造一個新的一個)。

步驟2變得困難。說那個人回去了,並且改變了Step 1的文件數量,改變了第2步中顯示的表格數量。還說他決定改變他上傳的幾個文件。

我在這裏唯一能想到的就是徹底刪除這個人第一次通過網站上傳的所有文件,刪除所有與這些文件相關的數據庫記錄,並從頭開始。如果我不這樣做,我會遇到一些奇怪的問題,比較他上傳到我的舊文件中的新文件,看看它們是否已經改變......看起來很麻煩,耗時比簡單刪除他們。

同樣,如果用戶再次點擊「瀏覽」上傳新文件,有沒有辦法讓我知道他們已經改變了這個領域?如果文件名稱完全相同,那麼您必須將新文件與舊文件進行比較。

但是,如果我只是徹底刪除一切,它會爲用戶造成問題。如果他最初上傳了10個文件,但是現在決定要上傳12個文件,除非他想保留原來10個文件中的8個,並且所有相關信息都相同,然後上傳4個新文件 - 他最終必須做所有12個文件再次從頭開始。

我想我可以預先填充第2步到目前爲止我已經在數據庫中獲得的內容,但是之後我仍然遇到必須比較新文件和我現在擁有的文件。

有沒有更好的方法來做到這一點?從來沒有意識到後退按鈕有多大的痛苦......

回答

0

爲什麼你想讓用戶從第3步到第2步?

無論如何,你不應該比較文件!只需寫新的。和文件,不限於用戶 - 可以在後臺刪除。

+0

這是常見的做法,不允許在這些多步驟形式後退?或者,也許我應該在頁面上提出一個警告,說如果你點擊返回按鈕並改變事情,那麼你將不得不重新輸入所有的東西......? – reedvoid 2011-05-23 05:51:29

+0

不允許倒退 - 簡單的解決方案。你也應該考慮NoJS用戶。 – 2011-05-23 18:20:51

相關問題