Отправка вложенных данных 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? Проблемы, с которыми я сталкиваюсь:

  1. Это вложенные данные JSON
  2. .
  3. Я передаю изображение вместе с ним.

Примечание: я написал вложенные сериализаторы для запросов GET/PUT/PATCH/DELETE. Все работает нормально, когда я не отправляю изображение (изображение здесь необязательно).

Преобразуйте ваше изображение в base64Image и отправьте его через JSON-данные.

Все, что вам нужно сделать, это:

  1. перейдите по адресу https://www.base64-image.de/ и преобразуйте изображение в формат base64. Скопируйте закодированный результат.
  2. .
  3. Установите пакет django-extra-fields в свой проект из здесь
  4. .
  5. В вашем 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')
...
  1. Теперь перейдите к вашему 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

Вернуться на верх