2012-08-10 49 views
0

在我的Django應用程序中,我有一個表單POSTS它在同一頁面上(沒有AJAX或任何東西;超級簡單)。我正在使用inlineformset_factory表單。Django表單提交不刷新用戶看到的內容

我的一個屬性是many2many關係的一部分,因此有一個delete複選框。如果用戶選中該框並提交表單,則POST成功完成並刷新頁面(正常表單提交,sans-ajax)。

但是,當頁面再次加載時,應該刪除的項目仍然顯示。如果我對頁面進行了硬刷新,他們就會消失(因爲POST成功了。)

我是在使用@never_cache的視圖函數的前綴。否則,我沒有任何幻想事情並沒有JavaScript和這種形式的互動。

任何想法?我一直停留在這一點(和是一個Django的n00b,這不利於)。

+1

你能發表你的看法嗎? – 2012-08-10 01:45:55

+1

盲目猜測,您可能會在執行刪除操作之前檢索數據庫中的項目。 – 2012-08-10 12:51:03

回答

3

在一般情況下,這是很好的做法,重定向後成功發佈,以防止多個提交。重定向到相同的網址是好的。

if formset.is_valid(): 
    formset.save() 
    return HttpResponseRedirect("") 

瀏覽器將遵循重定向,並且已刪除的項目將不會顯示。

+0

完美。謝謝! – Connor 2012-08-10 16:43:29