1
我正在創建一個將圖像保存在django模型中的API。通過API發送一個URL,django負責下載圖像並將其保存在模型中。使用序列化器從URL保存圖像
這是我的模型:
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)
這是我的串行:
class PictureSerializer(serializers.ModelSerializer):
image = serializers.ImageField(max_length=None, use_url=True)
class Meta:
model = Picture
fields = ("pk", "image", "entity",)
從我產生PIL對象的URL。如何指定存儲對象的序列化程序?我的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)
我想給PIL對象添加到request.data,它看起來像這樣:
<QueryDict: {'url': ['https://s3.amazonaws.com/cat/encabezado.jpg'], 'image': ['MY PIL IMAGE'], 'entity': ['clasificado'], 'csrfmiddlewaretoken': ['JRMLIXkxqg6sF5YP19NLTvgFOmVWH9ARSmM']}>
謝謝!