javascript - Django,想要加载一个网站然后更新它

标签 javascript python ajax django

我是 Django 和 Python 的新手,所以请耐心等待。 我正在尝试提交一个表单(在 test.html 页面中),提交表单后我想加载一个新页面(test.html/web1.html ),然后页面将显示正在运行的任务的持续更新。

目前,这适用于单个页面,我在其中提交表单,并使用 AJAX 在同一页面上获取更新。我想在新页面上实现它。下面是我的代码。

test.js

$('#Submit_button').on('submit',function(event){
    event.preventDefault();
    console.log("form submitted!")  
    call_func();  
}); 

function  call_func() { 
    $.ajax({
       url : "start_task/", // the endpoint
       data:{...,'init':call_func.i}, // call_func.i to iterate 2 times
    headers: {Accept: "application/json"},
    success : function(json) {  
        if(call_func.i==0){
            call_func.i=1;
            call_func();                
        }               
        else ...

views.py

def start_task(request):
    if request.method == 'POST':
        init = request.POST.get('init')
        print('init =',init)
        if init==0:
            return render(request, 'my_app/web1.html')    
        elif init==1:
            # work on updates
            return HttpResponse(
                json.dumps(response_data),
                content_type="application/json"
            )

html

<form action="/test.html/start_task/" method="POST" id="Submit_button">

如何仅在后半部分(更新新页面)使用 AJAX,并在提交后先加载页面?

最佳答案

我认为你需要类似 HttpResponseRedirect 的东西而不是 HttpResponse:

       if form.is_valid(): # validation
           # Process your data
           # ...
           return HttpResponseRedirect('/new_page_url/')

关于javascript - Django,想要加载一个网站然后更新它,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34195649/

相关文章:

javascript - 保护 jQuery 函数免受外部访问

javascript - 在动态复选框上添加 onclick 事件

jquery - 使用 jquery 的 ajax 或 getJSON 回调在 IE 上有效的 json 仍然失败

javascript - JS : How to trigger CSS changes on divs based on API information

javascript - 如何中止 jQuery 3.0 AJAX 请求?

javascript - p5.j​​s 形状循环错误(全部卡在一点)

javascript - 移动设备的 jQuery click 替代品

python - Flask-SQLAlchemy with_for_update() 返回旧数据

python - 动态 Canvas 控制

python - 使用 numpy.where() 返回完整数组的索引,其中测试条件位于切片数组中