TypeError: аргумент int() должен быть строкой, байтоподобным объектом или числом, а не 'WSGIRequest' при отправке POST-запроса в Django
Я пытаюсь отправить POST запрос, который я сделал через Postman и через командную строку, но я получаю тот же результат, который является
TypeError: int() argument must be a string, a bytes-like object or a number, not 'WSGIRequest'
Этот запрос идет к моему маршруту tasks
, который затем вызывает функцию create_task
# backend/tasks/urls.py
from django.urls import path
from django.views.decorators.csrf import csrf_exempt
from . import views
urlpatterns = [
path('tasks/', csrf_exempt(views.create_task))
]
Это views.create_task
находится в backend/task/views.py
from django.http import JsonResponse
from django.shortcuts import render
from django.views.decorators.csrf import csrf_exempt, ensure_csrf_cookie
from celery.result import AsyncResult
from rest_framework.parsers import JSONParser
from .tasks import create_task
@csrf_exempt
def run_task(request):
if request.method == 'POST':
data = JSONParser().parse(request)
print("hello")
print(data.data)
task_type = data.data
print(task_type)
task = create_task.delay(int(task_type))
return JsonResponse({"task_id": task.id}, status=202)
@csrf_exempt
def get_status(request, task_id):
task_result = AsyncResult(task_id)
result = {
"task_id": task_id,
"task_status": task_result.status,
"task_result": task_result.result
}
return JsonResponse(result, status=200)
Ничто из того, что я печатаю, не регистрируется, поэтому я не знаю, правильно ли разбирается то, что я делаю, все, что я получаю - это ошибка в заголовке
EDIT #1 - добавлена функция create_task
import time
from celery import shared_task
@shared_task
def create_task(task_type):
time.sleep(int(task_type) * 10)
return True