我想发布以下数据:
{
"user": {
"name": "user name",
"email": "user@example.com",
"phone_number": "01XXXXXXXXX",
"user_type": "MGR"
},
"img": "image_data",
"manager_brands": [
2,
1
]
}
我如何通过postman
传递这个JSON数据?我面临的挑战:
- 这是一个嵌套JSON数据
- 我正在传递一个图像。
注意:我为GET/PUT/PATCH/DELETE请求编写了嵌套序列化器。当我不发送图像(这里图像是可选的)时,一切都很好.
将您的图像转换为base64Image并通过JSON数据发送。
你所需要做的就是:
- 转到https://www.base64-image.de/并将图像转换为base64格式。复制编码后的结果。
- 在你的项目中安装django-extra-fields包
- 在您的
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')
...
- 现在,转到
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