Как кодировать и декодировать изображение в JSON для celery и django
Я пытаюсь применить некоторую логику к изображению, полученному из вызова API. Ниже приведен код из Django Rest Framework. Я пытаюсь сериализовать изображение, чтобы отправить его в задачу celery, но у меня не получается правильно сериализовать и десериализовать изображение.
serializer.validated_data
это <InMemoryUploadedFile: 1.png (image/png)>)])
serializer.validated_data['picture'].file
это <_io.BytesIO object at 0x7f1375e1edb0>
if serializer.is_valid():
image_uploaded = serializer.validated_data['picture'].file
json_data = base64.b64encode(image_uploaded.read()).decode('ascii')
call = test_func.delay(json_data)
results = TestSerializer(TestModel.objects.get(pk=call.get()))
@shared_task()
def test_func(json_data):
img_temp = asarray(Image.open(json_data))
....some logic
return model_instance.id
Я получаю следующую ошибку на call.get()
OSError: [Errno 36] Слишком длинное имя файла
Я не уверен, как правильно сериализовать и дериализовать изображение. Кто-нибудь может показать, как это исправить?