【发布时间】:2017-10-27 15:13:52
【问题描述】:
如何处理第二次提交重复请求如果由于服务器延迟而导致第一次提交尚未完成时用户试图刷新页面。
- 客户端禁用提交按钮以避免多次提交。
- 并在表单提交重定向到成功视图后处理发布/重定向/获取模式
我相信两者都处理得很好。
class SomeView(View):
def post(self, request, *args, **kwargs):
if form.is_valid()
if request_exists(request):
# here I can raise the exception also
# But How I redirect the customer to sucess page
# If 1st submission got success response.
else:
# here I have called internal api to get/post some data.
# user refreshes before this call has completed.
...
# once getting respose its ALWAYS redirect to new page
return HttpResponseRedirect('/thanks/')
但是如果从 API 调用获得响应延迟,如何处理这种情况。我需要延迟到第一次提交完成。然后我必须将用户发送到感谢页面。
【问题讨论】:
-
解决方案描述了here。如果我们在您的视图中有冗长的 API 调用或任何作业,只需在单独的离线任务中触发它,并尽快将用户重定向到新页面并显示一些等待消息。
标签: python django design-patterns