POST http://127.0.0.1:8000/cart/ 500 (внутренняя ошибка сервера) и непойманная (в обещании) SyntaxError: Неожиданная лексема < в JSON в позиции 0

В настоящее время я работаю над сайтом электронной коммерции, к сожалению, я наткнулся на несколько ошибок. Когда я нажимаю кнопку добавления в корзину, я ожидал увидеть терминал, отображающий 'Action:add ProductId:4', но терминал отображает следующую ошибку

File "C:\Programming\Python\GevengyCart\store\views\cart.py", line 14, in updateItem data = json.loads(request.data) Файл "C:\Users\PC\AppData\Local\Programs\Python\Python310\lib\json_init_.py", строка 339, in loads raise TypeError(f'объект JSON должен быть str, bytes или bytearray, ' TypeError: объект JSON должен быть str, bytes или bytearray, а не dict [27/Jul/2022 23:57:05] "POST /cart/ HTTP/1.1" 500 99758

В консоли отображаются следующие ошибки POST http://127.0.0.1:8000/cart/ 500 (Внутренняя ошибка сервера) updateUserOrder @ cart.js:24 (анонимный) @ cart.js:13 VM2058:1 Uncaught (in promise) SyntaxError: Unexpected token < in JSON at position 0

HTML строка для добавления в корзину

<button data-product="{{product.id}}" data-action="add" class="update-cart add btn-outline-secondary btn btn-sm text-dark p-0 fas fa-shopping-cart text-primary mr-1"> Add to Cart</button>

Здесь находится cart.js

var updateBtns = document.getElementsByClassName('update-cart')

for(var i = 0; i < updateBtns.length; i++){
    updateBtns[i].addEventListener('click', function(){
        var productId = this.dataset.product
        var action = this.dataset.action
        console.log('ProductId:', productId, 'action:', action)
    
        console.log('USER:', user)
        if (user === 'AnonymousUser'){
            console.log('Not logged in')
        }else{
            updateUserOrder(productId, action)
        }
    })
}


function updateUserOrder(productId, action){
    console.log('User is logged in, sending data...')

    var url = '/cart/'

    fetch(url, {
        method:'POST',
        headers:{
            'Content-Type':'application/json',
            'X-CSRFToken': csrftoken,
        },
        body:JSON.stringify ({'productId': productId, 'action':action})
    })

    .then((response)=>{
        return response.json()
    })

    .then((data)=>{
        console.log('data:', data)
    })
}

Вот cart.py в моей папке views

from django.http import JsonResponse
from django.shortcuts import render , redirect
import json
from store.models.product import Product

from django.contrib.auth.hashers import  check_password
from store.models.customer import Customer
from django.views import  View
from store.models.product import Product
from rest_framework.decorators import api_view

@api_view(["POST"])
def updateItem(request):
    data = json.loads(request.data)
    productId = data['productId']
    action = data['action']

    print('Action:', action)
    print('productId:', productId)
    return JsonResponse('Item was added', safe=False)
Вернуться на верх