Как получить результаты из задачи celery в react через django rest framework

Я пытаюсь создать задачу celery в рамках django rest framework и вернуть результат во фронтенд react.

Вот мои URL

from .views import ImageViewSet
from rest_framework import routers
from django.urls import path, include

router = routers.DefaultRouter()
router.register(r'analyze', ImageViewSet)

urlpatterns = [
    path('', include(router.urls)),

]

Вот мой сериализатор

class ImageViewSet(viewsets.ModelViewSet):
    queryset = Test.objects.all()
    serializer_class = TestSerializer

    def create(self, request, *args, **kwargs):
        serializer = TestSerializer(data=request.data)

             ...some logic

            result = test_task.delay(file_path)

            return JsonResponse({"task_id": result.id,
                                 "task_status": result.status},
                                status=status.HTTP_201_CREATED)

    def list(self, request, task_id, *args, **kwargs):

        task = current_app.AsyncResult(task_id)
        response_data = {'task_status': task.status, 'task_id': task.id}

        if task.status == 'SUCCESS':
            response_data = TestSerializer(Test.objects.get(pk=task.get()))
            return Response(response_data.data, status=status.HTTP_201_CREATED)

Я вижу, что функция def create работает, потому что когда я захожу в админку Django, я нахожу все сохраненным и рассчитанным правильно. Я думаю, что проблема в def list или в URL файлах

На моем фронтенде я имею следующее

getResults= () => {


    let formData = new FormData()
    formData.append('picture', files[0]., files[0].name)
    axios.post("/api/analyze/", formData, {
        headers: {
            'accept': 'application/json',
            'content-type': 'multipart/form-data'
        }
    })
        .then(resp => {
            console.log(resp.data)
        })
}

Я получаю

{task_id: '8f09fc07-e434-4e8c-88c4-f4d60fb711dd', task_status: 'PENDING'}

Но я не уверен, как обновить эту функцию, чтобы получить результаты, когда сельдерей закончит работу?

Вернуться на верх