在django api中的form-data中发布请求中的对象数组

时间:2017-12-19 10:12:38

标签: python django django-rest-framework postman

我正在使用Django Restframework进行apis。我正在开发一个POST api,我需要在form-data中发送一个对象数组。当我在原始数据中尝试它时,它工作得很好。但是当我在postman中使用form-data并将值放在数组中时,它会导致问题。

我在原始数据中使用的键值对是

 {  "services": [
        {
            "category_image": "",
            "category_name": "construction",
            "budget_min": "0-1000",
            "budget_max": "0-1000",
            "distance_min": "200",
            "distance_max": "500",
            "projects": [
        {
            "category_image": "",
            "category_name": "residential",
            "sub_category": [
                {
                    "project_name": "single family",
                    "project_image": "",
                    "parent_id": "1"
                },
                {
                    "project_name": "multi family",
                    "project_image": "",
                    "parent_id": "1"
                },
                {
                    "project_name": "big family",
                    "project_image": "",
                    "parent_id": "1"
                }
            ]
        },
        {
            "category_image": "",
            "category_name": "hospitality",
            "sub_category": [
                {
                    "project_name": "health care",
                    "project_image": "",
                    "parent_id": "5"
                },
                {
                    "project_name": "hotels",
                    "project_image": "",
                    "parent_id": "5"
                }
            ]
        }
    ],

            "sub_category": [
                {
                    "service_name": "wall",
                    "service_image": "",
                    "parent_id": "1"
                },
                {
                    "service_name": "kitchen",
                    "service_image": "",
                    "parent_id": "1"
                },
                {
                    "service_name": "outdoor",
                    "service_image": "",
                    "parent_id": "1"
                }
            ]
        },
        {
            "category_image": "",
            "category_name": "driving",
            "sub_category": [
                {
                    "service_name": "car",
                    "service_image": "",
                    "parent_id": "5"
                },
                {
                    "service_name": "bike",
                    "service_image": "",
                    "parent_id": "5"
                }
            ]
        }
    ]
}

在表单数据中,我使用服务作为键,数组作为值。

我检索值的代码是:

data = request.data.get['services']

使用原始数据时,我得到了正确但不是表单数据。 我打印了请求,它在原始数据中变得非常完美,但在表单数据中它将字符串中的所有内容都包含在内。响应看起来像 -

"[\n   {\n      \"min_price\":\"5\",\n      \"max_price\":\"50\",\n      \"category_image\":\"\",\n      \"service_name\":\"plumb\",\n      \"projects\":[\n         {\n            \"category_image\":\"\",\n            \"project_name\":\"personal\",\n            \"sub_category\":[\n               {\n                  \"project_name\":\"single family\",\n                  \"project_image\":\"\",\n                  \"parent_id\":\"1\"\n               },\n               {\n                  \"project_name\":\"multi family\",\n                  \"project_image\":\"\",\n                  \"parent_id\":\"1\"\n               },\n               {\n                  \"project_name\":\"big family\",\n                  \"project_image\":\"\",\n                  \"parent_id\":\"1\"\n               }\n            ]\n         },\n         {\n            \"category_image\":\"\",\n            \"project_name\":\"hospita\",\n            \"sub_category\":[\n               {\n                  \"project_name\":\"health care\",\n                  \"project_image\":\"\",\n                  \"parent_id\":\"5\"\n               },\n               {\n                  \"project_name\":\"hotels\",\n                  \"project_image\":\"\",\n                  \"parent_id\":\"5\"\n               }\n            ]\n         }\n      ],\n      \"sub_category\":[\n         {\n            \"service_name\":\"wall\",\n            \"service_image\":\"\",\n            \"parent_id\":\"1\"\n         },\n         {\n            \"service_name\":\"kitchen\",\n            \"service_image\":\"\",\n            \"parent_id\":\"1\"\n         },\n         {\n            \"service_name\":\"outdoor\",\n            \"service_image\":\"\",\n            \"parent_id\":\"1\"\n         }\n      ]\n   }\n]"

0 个答案:

没有答案