Объект Django-cart всегда пуст

Я разрабатываю веб-приложение для электронной коммерции с использованием Django. После того, как я реализовал нижний колонтитул, пагинацию и строку поиска, кнопка "Добавить в корзину" перестала работать. Единственное, что я предположил, это проблема с кэшем, поэтому я добавил декоратор @never_cache над представлениями cart/checkout, однако кнопка по-прежнему не работает, и при осмотре объект cart пуст даже после нажатия кнопки. Я не уверен, в чем причина этого.

main.html

В этом шаблоне я написал JS логику для корзины, навигационной панели и панели поиска.

views.py

store используется для получения данных о товарах в корзине, obj = Carousel.objects.all() получает заголовок и изображение на карусели (только на главной странице). Пагинация показывает 16 товаров на странице.

<<<Метод

cart используется для получения cartData текущей сессии и соединения front-end с back-end (метод Checkout аналогичен).

updateItem метод имеет 2 оператора печати: print('Action:', action) print('Product:', productId) в качестве подтверждения, когда пользователь добавляет/удаляет товары из корзины.

def store(request):
    data = cartData(request)

    cartItems = data['cartItems']
    order = data['order']
    items = data['items']

    obj = Carousel.objects.all()

    product_list = Product.objects.all()
    page = request.GET.get('page', 1)

    paginator = Paginator(product_list, 16)
    try:
        products = paginator.page(page)
    except PageNotAnInteger:
        products = paginator.page(1)
    except EmptyPage:
        products = paginator.page(paginator.num_pages)

    context = {

        'products': products,
        'cartItems': cartItems,
        'obj': obj,
    }

    return render(request, 'store/store.html', context)

@never_cache
def cart(request):
    data = cartData(request)

    cartItems = data['cartItems']
    order = data['order']
    items = data['items']

    context = {'items': items, 'order': order, 'cartItems': cartItems}
    return render(request, 'store/cart.html', context)

@never_cache
def checkout(request):
    data = cartData(request)

    cartItems = data['cartItems']
    order = data['order']
    items = data['items']

    context = {'items': items, 'order': order, 'cartItems': cartItems}
    return render(request, 'store/checkout.html', context)


def updateItem(request):
    data = json.loads(request.body)
    productId = data['productId']
    action = data['action']
    print('Action:', action)
    print('Product:', productId)

    customer = request.user.customer
    product = Product.objects.get(id=productId)
    order, created = Order.objects.get_or_create(customer=customer, complete=False)

    orderItem, created = OrderItem.objects.get_or_create(order=order, product=product)

    if action == 'add':
        orderItem.quantity = (orderItem.quantity + 1)
    elif action == 'remove':
        orderItem.quantity = (orderItem.quantity - 1)

    orderItem.save()

    if orderItem.quantity <= 0:
        orderItem.delete()

    return JsonResponse('Item was added', safe=False)

Полезно знать, что после того, как я реализовал пагинацию, я загрузил свой окончательный код на github, и через некоторое время пагинация также перестала работать.

Спасибо за ваше время

Ссылка

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