まで保存見るべきであると仮定。
これは、Djangoベースの(drfも)APIエンドでのPost要求で、Base64でエンコードされた画像ファイルを処理してImageFieldとして保存する方法です。
レッツは、次のようにモデルを持っていると言う:
Class MyImageModel(models.Model):
image = models.ImageField(upload_to = 'geo_entity_pic')
data=model.CharField()
次のように対応するシリアライザは、次のようになります。
from drf_extra_fields.fields import Base64ImageField
Class MyImageModelSerializer(serializers.ModelSerializers):
image=Base64ImageField()
class meta:
model=MyImageModel
fields= ('data','image')
def create(self, validated_data):
image=validated_data.pop('image')
data=validated_data.pop('data')
return MyImageModel.objects.create(data=data,image=image)
次のように対応するビューを指定できます
elif request.method == 'POST':
serializer = MyImageModelSerializer(data=request.data)
if serializer.is_valid():
serializer.save()
return Response(serializer.data, status=201)
return Response(serializer.errors, status=400)
通知シリアライザでは、モジュールに提供されたBase64ImageFieldの実装を使用しましたこのモジュールは
pip install pip install django-extra-fields
のコマンドを実行してインストールするには
は同じと完了をインポートします!
JSONオブジェクト内のBase64エンコードされた文字列として画像を送信します(他のデータと同様に)。
関数を呼び出すことができます。なにか提案を? – Mutant
あなたは最初のデータを含めたくないです:image/gif; base64、bitしかし、私はあなたのことを知っていると思います。 –
ファイルの 'data:image/*; base64 'をインクルードする必要がないので、これが失敗するかもしれないと思います。 –