json 中的 django HttpResponse

django HttpResponse in json

我有一个看法:

def add_view(request):
    if request.method == "POST":

        files = request.FILES.getlist("file")
        response_data = {}

        for file in files:
            my_model = MyModel()
            my_model.my_file = file
            my_model.save()
            id_info = my_model.id
            response_data.append(id_info)

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

假设有 5 个文件,那么我想通过 json 发送 5 个文件的 ID 作为响应。这里说的是赋值前引用的局部变量response_data。

我要发送所有 5 个文件的 ID。如何做到这一点?

首先,您在 if 内部定义了 response_data = {},而您的 return response 在外部,因为您得到了 response_data referenced before assignment 错误。

其次,dict没有append()方法。您应该将 responde_data 声明为列表

def add_view(request):
    response_data = []
    if request.method == "POST":

        files = request.FILES.getlist("file")


        for file in files:
            my_model = MyModel()
            my_model.my_file = file
            my_model.save()
            id_info = my_model.id
            response_data.append(id_info)

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