Отправка вложенных данных JSON с изображением/файлом из postman: REST-фреймворк Django
Я хочу разместить следующие данные:
{
"user": {
"name": "user name",
"email": "user@example.com",
"phone_number": "01XXXXXXXXX",
"user_type": "MGR"
},
"img": "image_data",
"manager_brands": [
2,
1
]
}
Как передать эти данные JSON через postman
? Проблемы, с которыми я сталкиваюсь:
- Это вложенные данные JSON .
- Я передаю изображение вместе с ним.
Примечание: я написал вложенные сериализаторы для запросов GET/PUT/PATCH/DELETE. Все работает нормально, когда я не отправляю изображение (изображение здесь необязательно).
Преобразуйте ваше изображение в base64Image и отправьте его через JSON-данные.
Все, что вам нужно сделать, это:
- перейдите по адресу https://www.base64-image.de/ и преобразуйте изображение в формат base64. Скопируйте закодированный результат. .
- Установите пакет django-extra-fields в свой проект из здесь .
- В вашем
serializer_class
измените поле image следующим образом:
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, как показано ниже. Не забудьте отправить закодированное изображение в полеimg
в JSON.
{
"user": {
"name": "user name",
"email": "user@example.com",
"phone_number": "01XXXXXXXXX",
"user_type": "MGR"
},
"img": "<base64 encoded image>",
"manager_brands": [
2,
1
]
}
Надеюсь, это поможет :D