通过Ajax请求呈现Django视图

时间:2018-12-21 17:23:42

标签: ajax django view request

当前使用ajax监视Django应用程序中的长时间运行的任务。任务运行时,将显示进度条,完成后,我希望ajax发出请求并加载带有结果的视图,以便为用户呈现显示这些结果的页面。如何从前端通过ajax和jquery加载视图,并将数据传递给用户?

当前(断开)解决方案: 在我的模板中:

<script> 

var progressUrl = "{% url 'celery_progress:task_status' task_id %}"; 
document.addEventListener("DOMContentLoaded", function () { 
      CeleryProgressBar.initProgressBar(progressUrl); 
}); 

function customResult(resultElement, result) { 
    $.ajax({ 
        type: 'POST', 
        url: '/show_results/', 
        data:{ 
            results:$('result').val(), 
            'csrfmiddlewaretoken': "{{ csrf_token }}" 
        } 
    }) 
} 

$(function () { 
    CeleryProgressBar.initProgressBar(progressUrl, { 
        onResult: customResult, 
    }) 
}); 

 </script> 

views.py:

def show_results(request, results):
    template = 'fv1/fv.html'
    form = FVForm(request.post)
    if request.method == 'POST':
        results = request.POST.get('results')
        return render(request, templates, context = results)

0 个答案:

没有答案