1
画像をDjangoモデルに保存するAPIを作成しています。 APIを介してURLが送信され、djangoは画像をダウンロードしてモデルに保存します。私はPILのオブジェクトを生成するURLからシリアライザでURLから画像を保存
class PictureSerializer(serializers.ModelSerializer):
image = serializers.ImageField(max_length=None, use_url=True)
class Meta:
model = Picture
fields = ("pk", "image", "entity",)
:
class Picture(Media):
image = models.ImageField(upload_to=picture_path, blank=True, null=True)
entity = models.CharField(max_length=20, choices=ENTITIES,
default=ENTITY_CLASIFICADO)
これは私のシリアライザです:
は、これは私のモデルです。どのようにオブジェクトを格納するシリアライザを指定するのですか?私のviews.py
class PictureViewSet(generics.ListCreateAPIView):
def create(self, request, *args, **kwargs):
r = requests.get(request.data["url"])
img_temp = NamedTemporaryFile(delete = True)
img_temp.write(r.content)
ここで空の画像フィールドを保存しています。
serializer = self.get_serializer(data=request.data)
私はrequest.dataにPILオブジェクトを追加したいと思いますし、それは次のようになります。
<QueryDict: {'url': ['https://s3.amazonaws.com/cat/encabezado.jpg'], 'image': ['MY PIL IMAGE'], 'entity': ['clasificado'], 'csrfmiddlewaretoken': ['JRMLIXkxqg6sF5YP19NLTvgFOmVWH9ARSmM']}>
ありがとう!