如何从Ajax请求中获取数据并根据此更改HTML?

2024-04-27 02:24:29 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图发出ajax请求以获取后台任务状态,但无法获取数据

这是我的Ajax请求

var ii=setInterval(function()
        {
            $.ajax({
                type: "get",
                url: '{% url "data:status" %}',
                success:function (data)
                {
                    console.log(data)
                }
            });
        }, 5000);
        function Cii(){
            clearInterval(ii)
        }

这是我的HTML

 <div class="jumbotron text-center" id="status">
    <div id="display_status">
    {% if pending and running %}
    <p>{{pending}} Waiting.</p>
    <p>{{running}} Going on.</p>
    {% else %}
        {% if completed >= 0 %}
        <a href='#'> It's done, press for make prediction!</a>
        {% else %}
        <p>0 Waiting.</p>
        <p>0 Going on.</p>
        {% endif %}
    {% endif %}
 </div>
</div>

这里是由ajax请求触发的函数

def get_process_status():
    now = timezone.now()
    pending_tasks = Task.objects.filter(run_at__gt=now)
    running_tasks = Task.objects.filter(locked_at__gte=now)
    completed_tasks = CompletedTask.objects.all()
    connection.close()
    return len(pending_tasks), len(running_tasks), len(completed_tasks)

这是我的观点

@login_required(login_url = "user:login")
def process_status_view(request):
    if request.is_ajax():
        pending, running, completed = get_process_status()
        context = {
        "pending": pending,
        "running": running,
        "completed": completed,
        }
        return render(request, "pending_page.html", context)
    return render(request, "pending_page.html")

我怎样才能解决这个问题