当前使用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)