"TypeError: cannot unpack non-iterable AsyncResult object" при использовании Django?
Я использую Django с Celery для выполнения асинхронного вызова, который возвращает несколько значений. Однако при попытке распаковать эти переменные в моем представлении Django возникает вышеупомянутая ошибка TypeError. Вот что у меня есть на данный момент:
Релевантный код
views.py
def render_data(request):
reddit_url = request.POST.get('reddit_url')
sort = request.POST.get('sort')
var1, var2 = celery_run.delay(reddit_url, sort)
data = {
'var1': var1,
'var2': var2,
}
return JsonResponse(data)
tasks.py
@shared_task
def celery_run(reddit_url, sort):
var1, var2 = run_data(reddit_url, sort)
return var1, var2
Ожидаемый результат против фактического
Идеально, функция правильно распакует объект, и каждой переменной будет присвоено соответствующее значение из функции. Вместо этого я получаю ошибку типа, указывающую на то, что я не могу распаковать асинхронные объекты. Я не совсем уверен, но это потому, что я пытаюсь распаковать из функции, которая все еще выполняется?
Что я пробовал
- Unpacking variables within tasks.py instead in views.py, did absolutely nothing but I prayed
- Followed the solution from TypeError: cannot unpack non-iterable NoneType object but unfortunately extra indents makes my code work less
Если бы я мог получить любую информацию о том, что вызывает эту ошибку и лучший метод для решения этой проблемы, я был бы благодарен. Спасибо!