1. ホーム
  2. django

[解決済み] "POSTMANを使った画像データの投稿"

2022-02-18 15:11:52

質問

私は自分のAPIにデータをPOSTしようとしています。モデルには image というフィールドがあります。

image = models.ImageField()

私はローカルのボックスに画像を持っていて、それを送信しようとしています。私はそれを正しく送信していますか?

{
   "id": "3", 
   "uid":"273a0d69",
   "uuid": "90",
   "image": "@/home/user/Downloads/tt.jpeg"
}

解決方法は?

それはpostmanでファイルを送信する方法ではないです。あなたが行ったのは、画像のパスを文字列で送ることであり、それ以上ではありません。

どうすればいいかというと

  1. リクエストメソッドをPOSTに設定した後、'body'タブをクリックします。
  2. form-dataを選択します。最初の行に、keyとvalueという名前のテキストボックスが表示されます。キーには'image'と書いてください。値のタイプはデフォルトで'text'に設定されています。これをFileにして、ファイルをアップロードします。
  3. 次に「raw」を選択し、jsonファイルを貼り付けます。また、バイナリ選択のすぐ横で、「テキスト」がクリックされているのがわかります。それをJSONにします。

準備完了です。

Djangoのビューで。

from rest_framework.views import APIView
from rest_framework.parsers import MultiPartParser
from rest_framework.decorators import parser_classes

@parser_classes((MultiPartParser, ))
class UploadFileAndJson(APIView):

    def post(self, request, format=None):
        thumbnail = request.FILES["file"]
        info = json.loads(request.data['info'])
        ...
        return HttpResponse()