将Python列表传递给Post调用返回数据Django

时间:2016-08-16 12:53:39

标签: javascript django

我用Javascript编写了一个Post调用。

function chooseTeam(){
var myProject=document.getElementById("myProject").value
document.getElementById("myTeam").disabled=false;
$.post('http://localhost:8000/timer/populateteam/',{ "myProject": myProject},
        function(returnedData) {
            console.log(returnedData)
            console.log(typeof returnedData)


        });
}

在视图中我写了一个视图,我得到一个列表

def populateteam(request):
    team_members_project=[]
    myTeam_project=request.POST.get("myProject")
    proj_obj = Project.project.all().filter(name=myTeam_project)
    team=Employee.employee.all().filter(projects=proj_obj)
    for i in range (len(team)):
        team_members=team[i].full_name()
        team_members_project.append(team_members)

如何将列表返回到javascript函数。我没有使用Django休息框架。

3 个答案:

答案 0 :(得分:2)

将这些添加到您的导入中:

import json
from django.http import HttpResponse

然后在你的视图中,返回一个带有json编码列表的HttpResponse,如下所示:

return HttpResponse(json.dumps(team_members_project), content_type="application/json")

答案 1 :(得分:0)

您可以使用JsonResponse。只需将列表传递给jsonResponse并将safe参数设置为False

即可
return JsonResponse(team_members_project,safe=False)

答案 2 :(得分:0)

您可以使用json模块中的函数对其进行编码 public interface IA<in TInput> { void Method(IB<TInput> entities); } public interface IB<in T> { }

您可以在return json.dumps({'array':team_members})请求的标头中使用contentType: 'application/json'来接收JSON数据。