我們的Django應用程序上有一些功能,顯示一個鏈接來刷新我們版本控制系統的一些信息。這只是一個鏈接,當他們訪問該URL時,將執行版本控制,獲取信息,檢查數據庫並更新數據庫等操作。Django:有沒有辦法阻止視圖被同時調用兩次?
最近我們有一個用戶爲一個資產點擊兩次'刷新'按鈕。這導致URL被擊兩次,所以這些操作被執行了兩次,最終在我們的數據庫中創建了一個重複的條目。
我們需要做些什麼來消除用戶單擊該按鈕兩次的可能性。我們應該從一個鏈接轉移到一個JavaScript按鈕?一旦第一次點擊發生,我們是否應該在request.session中設置一些標誌,然後在完成時取消設置,並且在執行刷新時始終檢查該標誌?這些只是兩個看起來可行的想法,但我真的不知道。
爲什麼一個頁面請求,從而導致數據庫條目?我猜這不是一個POST。 –
糟糕。這是我們的第一個Web應用程序,但我應該抓住了這一點。是的 - 這是一個get。有一個列可以生成一個'視圖'鏈接(如果我們的數據庫是最新的VC)或'刷新'鏈接(如果我們的數據庫不是最新的VC)。 'view'顯然是GET,但'refresh'應該是POST。這是否意味着它是一個鏈接的模式將無法正常工作? – Nathan