通过image/file从postman: Django REST框架发送嵌套JSON数据



我想发布以下数据:

{
"user": {
"name": "user name",
"email": "user@example.com",
"phone_number": "01XXXXXXXXX",
"user_type": "MGR"
},
"img": "image_data",
"manager_brands": [
2,
1
]
}

我如何通过postman传递这个JSON数据?我面临的挑战:

  1. 这是一个嵌套JSON数据
  2. 我正在传递一个图像。

注意:我为GET/PUT/PATCH/DELETE请求编写了嵌套序列化器。当我不发送图像(这里图像是可选的)时,一切都很好.

将您的图像转换为base64Image并通过JSON数据发送。

你所需要做的就是:

  1. 转到https://www.base64-image.de/并将图像转换为base64格式。复制编码后的结果。
  2. 在你的项目中安装django-extra-fields包
  3. 在您的serializer_class中,更改图像字段,如下代码:

serializers.py

...
from drf_extra_fields.fields import Base64ImageField
...

...
class ProfileSerializer(serializer.ModelSerializer):
user = UserSerializer()
img = Base64ImageField(required=False)
class Meta:
model = Profile
fields = ('user', 'img', 'manager_brands')
...
  1. 现在,转到postman并发送JSON数据,如下所示。请记住以JSON格式发送img字段中的编码图像。
{
"user": {
"name": "user name",
"email": "user@example.com",
"phone_number": "01XXXXXXXXX",
"user_type": "MGR"
},
"img": "<base64 encoded image>",
"manager_brands": [
2,
1
]
}

希望这对你有帮助:D

最新更新