在我的Django网站上,用户上传照片和其他评论。目前,整个上传过程都是阻止呼叫。相反,我想将其移动到一个芹菜队列并异步执行。对于这一点,我只需调用从views.py
如下:异步处理图像(Django)
photo = form.cleaned_data.get('photo',None)
upload_photo.delay(photo, request.user.id)
然后在tasks.py
,我有:
@celery_app1.task(name='tasks.upload_photo')
def upload_photo(photo_obj, user_id):
photo = Photo.objects.create(image_file = photo_obj, owner_id=user_id)
现在这个,可以预见,给了我一个EncodeError: <InMemoryUploadedFile: temp.jpg (image/jpeg)> is not JSON serializable
。那么为了在aysnc任务中完成繁重的工作,在这里遵循什么样的正确模式?一个说明性的例子会非常有帮助。
P.s.如果它对回答者很重要,我正在寻找一个没有JS参与的解决方案。