【发布时间】:2014-06-13 03:51:00
【问题描述】:
我正在提交一个表单。之后我在做HttpResponseRedirect,这样如果我刷新页面就不会提交表单。但是,如果我在浏览器中go back 并再次提交表单,表单将被保存多次。我怎样才能防止这种情况?
我想到了会话,意思是我设置了一个这样的会话名称:
if request.session.get('saved', False):
return HttpResponseRedirect('/already_saved/')
entry.save() # <-- pseudo save
request.session['saved'] = True
但这会导致用户在他的实际会话中永远无法在我的页面中发送另一个表单。
如何为每个表单创建唯一的会话,这样一个表单不会被多次提交,但仍然可以提交另一个表单?
【问题讨论】:
-
您可以在页面上添加一个过期标题到过去的时间(-1)并且使用返回按钮时页面将无效。使用会话 cookie 来存储它也可以。
-
@PatrickBassut 我没有刷新问题,我有返回按钮的问题。不过还是谢谢
-
您希望用户不要两次提交相同的数据,还是不要在给定的短时间内提交相同的数据?
-
@PatrickBassut 不要再次提交相同的表格 - 无论是在短时间内还是提交多少次......
标签: django session session-cookies