我正在使用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]"