在我的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參與的解決方案。