0

在我的 django 应用程序中,我有一个POSTS与它所在的页面相同的表单(没有 AJAX 或任何东西;超级简单)。我正在使用inlineformset_factory表格。

我的属性之一是 many2many 关系的一部分,因此有一个delete复选框。如果用户选中该框并提交表单,POST则成功通过并刷新页面(就像正常的表单提交一样,sans-ajax)。

但是,当页面再次加载时,应该被删除的项目仍然出现。问题是,如果我对页面进行硬刷新,它们就会消失(因为POST成功了。

我在使用的视图函数前面加上@never_cache. 否则,我没有什么花哨的东西,也没有 JavaScript 与这个表单交互。

有任何想法吗?我一直坚持这一点(并且是 django n00b,这无济于事)。

4

1 回答 1

3

一般来说,一个好的做法是在成功发布后重定向,以防止多次提交。重定向到相同的网址是可以的。

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

浏览器会跟随重定向,被删除的项目不会显示。

于 2012-08-10T12:41:52.927 回答