2012-08-10 50 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