我一直在向django應用程序添加功能。發送HTTP從django視圖發佈數據
部分原因涉及搜索/更新數據頁面,以簡化修改數據並將其移出管理界面以提高易用性。
工作流程如下:用戶輸入搜索詞。顯示的匹配列表中包含指向修改/更新的鏈接。用戶點擊鏈接進行更改並顯示一個表單。在頁面底部,他們可以點擊提交或取消,其中任何一項都會將其帶回搜索頁面。
所以這裏是我的問題:我如何將用戶重定向到搜索頁面並傳遞原始發佈數據?
謝謝!
我一直在向django應用程序添加功能。發送HTTP從django視圖發佈數據
部分原因涉及搜索/更新數據頁面,以簡化修改數據並將其移出管理界面以提高易用性。
工作流程如下:用戶輸入搜索詞。顯示的匹配列表中包含指向修改/更新的鏈接。用戶點擊鏈接進行更改並顯示一個表單。在頁面底部,他們可以點擊提交或取消,其中任何一項都會將其帶回搜索頁面。
所以這裏是我的問題:我如何將用戶重定向到搜索頁面並傳遞原始發佈數據?
謝謝!
請注意,管理員做這件事情。
當您的用戶進行搜索時,搜索結果中的項目的url應該在查詢字符串中包含搜索項。例如,在管理員中,每個項目將有一個查詢字符串,如?_changelist_filters=q%3Dterm
(即q=term
)。在這個過程中的每一步傳遞這個查詢,你的應用程序將如何「記住」原始查詢。
因此,當用戶點擊該項目時,在表單上創建一個action
網址,該網址也包含此查詢字符串。然後,當提交表單時,您可以使用查詢字符串中的搜索詞重定向到您的搜索頁面。
我希望這是有道理的。沒有看到一些實際的代碼很難更具體。
我已經使用這種方法在頁面之間傳遞數據,但在這種情況下,我有一個同時具有get和post方法的視圖方法(即如果request.method =='POST'#搜索其他東西#顯示搜索表單)。那麼,如果用戶選擇取消將其恢復爲原始查詢,我將如何發出'POST'請求? – Dan
@Dan:大多數搜索功能(例如Django admin,Google)允許您在查詢字符串中傳遞搜索參數(例如http://www.google.com/search?q=django)。如果你可以做到這一點,那麼你可以重定向到搜索的GET版本。如果不是,那麼你將不得不將查詢存儲在某個地方(會話,數據庫,coookie等),因爲你無法在重定向中傳遞POST數據。但是,僅POST POST搜索被認爲是非常不方便用戶的,因爲它不能被加入書籤等。 –
結束了一個簡單的解決方案:對於我的取消按鈕,我只是使用對於提交按鈕,我將返回到搜索頁面。 – Dan