I want to POST the following data:
{
"user": {
"name": "user name",
"email": "[email protected]",
"phone_number": "01XXXXXXXXX",
"user_type": "MGR"
},
"img": "image_data",
"manager_brands": [
2,
1
]
}
How can I pass this JSON data through postman
? Challenges I am facing:
- This is a nested JSON data
- I am passing an image with it.
Note: I wrote the nested serializers to GET/PUT/PATCH/DELETE requests. Everything works fine when I don't send an image (image is optional here).
CodePudding user response:
Convert your Image to base64Image and send it through the JSON data.
All you need to do is:
- go to https://www.base64-image.de/ and convert the image to base64 format. Copy the encoded result.
- Install django-extra-fields package in your project from here
- In your
serializer_class
, change the image field like the following code:
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')
...
- Now, go to your
postman
and send the JSON data like the following. Remember to send that encoded image in yourimg
field in JSON.
{
"user": {
"name": "user name",
"email": "[email protected]",
"phone_number": "01XXXXXXXXX",
"user_type": "MGR"
},
"img": "<base64 encoded image>",
"manager_brands": [
2,
1
]
}
Hope this helps :D