【发布时间】:2015-06-01 13:54:34
【问题描述】:
用户提交后,我重定向回与用户在表单中提交数据的同一页面。我可以看到数据 POST,然后立即在 Firefox 36.0.4 桌面、Chrome 41.0.2272 桌面、Opera 10.0 iPhone 5、Chrome 41.0.2272 iPhone 5 中看到同一页面的 GET。但是,只有移动设备上的 Chrome 会导致刷新时“确认重新提交”,也不会再次加载所有 js。有解决这个问题的方法吗?
这是我的最小简单视图。
def workout(request):
form = WorkoutInfoForm(request.POST or None)
if form.is_valid():
form.save()
post = request.POST.copy()
request.session['_old_post'] = post
return redirect(reverse("workout.views.workout"))
if not request.POST:
old_post = request.session.get('_old_post')
form = WorkoutInfoForm(old_post or None)
return render_to_response("workout/track_workout.html",
locals(),
context_instance=RequestContext(request))
我的表单从我的模板开始
<form method='POST' action='' class="form-horizontal" role="form"> {% csrf_token %}
【问题讨论】:
-
Preventing form resubmission 的可能重复项
-
感谢您的建议。副本没有帮助,因为我已经处于 POST/REDIRECT/GET 模式。即使在 GET 我仍然有刷新重新提交问题。也许我没有正确使用重定向。
标签: django redirect post get submit