Django提交表单->重定向到新页面->自动更新新页面
Django submit a form->redirect to a new page->auto update new page
好的,正如标题所描述的,我正在尝试创建一个网页(test.html),在提交表单后,它应该将我重定向到一个新页面(比如status.html)。加载该页面后,它会显示提交任务的一些连续更新。我能够在一个页面上完成这项工作,当我试图将其重定向到一个新页面时,我运气不好。
test.html
<form action="status/" method="POST" id="start-form">
.....
<input type="submit" value="Start" class="tbutton">
views.py
def status_page(request):
print("Inside redirect")
return HttpResponseRedirect(request,'my_app/status.html')
url.py
url(r'^test/status/$', 'status_page'),
jav.js
$('#start-form').on('submit',function(event){
event.preventDefault();
status();
});
function status() {
$.ajax({
url : "status_page/", // the endpoint
type : "POST", // http method
data:{' ': '',}, // data sent with the post req
headers: {Accept: "application/json"},
success : function(json) {
//on success display the rendered page,so what coding is needed here?
},
error : function(xhr,errmsg,err) {
//error handling code }
});
}
在执行时,不会加载新页面,但如果我绕过javascript,则会执行表单操作,并通过视图呈现新页面。但有了JavaScript,成功后会发生什么?视图中的return语句是如何在成功中捕获的,页面是如何显示的?我需要使用javascript和AJAX,因为一旦加载了新页面,我就需要在同一页面上显示连续的更新。那么,基本上我该如何使用javascript和Django用上面的代码实现重定向到新页面呢?任何帮助都将不胜感激!
在您的views.py中,HttpResponseRedirect使用错误。如果你想重定向到一个新的页面,那么你应该使用,
return HttpResponseRedirect('/url-where-you-want-to-redirect/')
由于HttpResponseRedirect
需要url参数而不是模板名称。
请参见此处:https://docs.djangoproject.com/en/1.9/ref/request-response/#django.http.HttpResponseRedirect
更好的方法是从status_page
视图返回JSON响应,然后在ajax的success
方法中,您可以转到下一个URL:
window.location.href = '/url-where-you-want-to-redirect/';
我希望这能有所帮助。
相关文章:
- 在检查单选按钮的值是否正确后,如何将其带到新页面
- 在Phonegap中重定向到新页面后,AdMob未定义
- ASP.NET MVC 3-在ajax调用后,重定向到新页面或生成页面刷新
- javascript:发送带有音频文件的POST,然后重定向到新页面
- 在onclick上动态创建新页面
- 如何将缩略图链接到新页面上的视频
- Javascript:在新页面中打开链接并运行脚本
- 视频暂停超过1分钟后重定向到新页面
- 在新页面中打开url的Javascript
- 防止 PHP 在新页面中显示结果
- 如何在边缘脚本完成后将用户定向到新页面
- 超链接单击以加载新页面并执行JavaScript
- 导航到新页面不会滚动到顶部
- 如何发布请求并将响应呈现为新页面
- 如何使用自动表单和iron路由器重定向到新页面
- 如何在发送时不打开新页面的情况下使用php/ajax发送表单
- 在RadWindow中加载新页面,然后从加载的窗体中关闭窗口
- JQuery无法将模糊事件绑定到所有<输入>页面中的元素
- 在IE11中,点击next或back按钮,使用intro.js打开一个新页面
- Django提交表单->重定向到新页面->自动更新新页面