我有一個簡單的Django形式與圖像領域和一些其他領域。現在用戶已經進入表單域並按下提交。由於某些錯誤,表單未經驗證。如何在表單驗證錯誤Django上預填充圖像字段?
由於表單未經驗證,表單圖像字段被清除,即用戶必須再次進入圖像字段。我不希望發生這種情況。我希望圖像字段包含用戶輸入的相同值。是否有可能做到這一點 ?
注意:我已經閱讀並知道,沒有辦法預先填寫這個圖像字段,因爲它可能是一個很大的安全威脅。但是我的一位技術客戶堅持說,它可以使用某種會話變量來完成。可能嗎 ?
我有一個簡單的Django形式與圖像領域和一些其他領域。現在用戶已經進入表單域並按下提交。由於某些錯誤,表單未經驗證。如何在表單驗證錯誤Django上預填充圖像字段?
由於表單未經驗證,表單圖像字段被清除,即用戶必須再次進入圖像字段。我不希望發生這種情況。我希望圖像字段包含用戶輸入的相同值。是否有可能做到這一點 ?
注意:我已經閱讀並知道,沒有辦法預先填寫這個圖像字段,因爲它可能是一個很大的安全威脅。但是我的一位技術客戶堅持說,它可以使用某種會話變量來完成。可能嗎 ?
使用JavaScript驗證客戶端的表單,並阻止提交,除非表單有效。這樣,你就不會失去現有的內容,因爲你的表單不會被提交,除非它已經被驗證好。
假設您使用jQuery,您可以綁定到提交按鈕的click事件,並使用preventDefault來停止默認行爲。然後驗證表單,並僅在表單有效時才提交。
這樣,只有當您的客戶端驗證可靠時,您纔會將表單提交給Django,因此您不應該遇到此問題。
要在視圖中顯示圖像,它需要保存到您的服務器,S3或任何您正在使用的靜態/媒體文件。
從JavaScript中,您可能能夠將所選文件存儲在localStorage中,並將記住的所選路徑設置爲表單錯誤。我不確定HTML5文件系統API是否允許這樣做。請參閱http://www.html5rocks.com/en/tutorials/file/filesystem/
正如Matthew Daly所說,與客戶端驗證一起是最佳選擇;其他任何事情都可能會令人頭疼。