Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

django celery - how to send request.FILES['photo'] to task

Tags:

django

celery

i'm trying to send request.FILES['photo'], an uploaded file from my site, to tCelery via:

tasks.upload_photos.delay(img=request.FILES['photo'])

I get a pickle error because it cannot serialize it. What is the way to send a file to task?

error: "can't pickle StringO objects" thanks.

like image 550
user527023 Avatar asked Dec 02 '10 01:12

user527023


2 Answers

Read the file contents into a string, then pack it with the content type in a dict and send that.

like image 192
Ignacio Vazquez-Abrams Avatar answered Sep 30 '22 19:09

Ignacio Vazquez-Abrams


If you plan on saving the file, you can save the file to a model, then pass the id/pk to a celery task.

like image 43
Aleck Landgraf Avatar answered Sep 30 '22 21:09

Aleck Landgraf