【问题标题】:Passing a Python list to Post call return data Django将 Python 列表传递给 Post 调用返回数据 Django
【发布时间】:2016-08-16 12:53:38
【问题描述】:

我用 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 rest 框架。

【问题讨论】:

    标签: javascript django


    【解决方案1】:

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

    import json
    from django.http import HttpResponse
    

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

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

    【讨论】:

      【解决方案2】:

      使用 HttpResponse 并将列表转储到 Json 中。内容类型应为“application/json”。

      json.dumps(list)
      

      【讨论】:

        【解决方案3】:

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

        return JsonResponse(team_members_project,safe=False)
        

        【讨论】:

          【解决方案4】:

          您可以使用 json 模块中的函数对其进行编码。
          return json.dumps({'array':team_members})

          您可以在POST 请求的标头中使用contentType: 'application/json' 来接收JSON 数据。

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 2012-09-27
            • 2018-08-04
            • 2021-04-22
            • 1970-01-01
            • 1970-01-01
            • 2020-11-12
            • 1970-01-01
            相关资源
            最近更新 更多