簡體   English   中英

從郵遞員發送帶有圖像/文件的嵌套 JSON 數據:Django REST 框架

[英]Send nested JSON data with image/file from postman: Django REST framework

我想發布以下數據:

{
    "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 請求編寫了嵌套序列化程序。 當我不發送圖片時,一切正常(圖片在這里是可選的)

將您的 Image 轉換為 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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM