Django : cart = self.session[settings.CART_SESSION_ID] = {} выдает мне неподдерживаемые типы операндов для +: 'float' и 'str' ошибка

Здравствуйте, я пытаюсь создать корзину с помощью django,

я создал класс:

class Cart(object):
def __init__(self, request):
    self.session = request.session
    cart = self.session.get(settings.CART_SESSION_ID)

    if not cart:
        cart = self.session[settings.CART_SESSION_ID] = {}
    
    self.cart = cart

и выдает ошибку неподдерживаемого типа операнда для +: 'float' и 'str'

Мой settings.py

CART_SESSION_ID = 'cart'

Мой cart.py

from django.conf import settings

from Products.models import Product

class Cart(object): def init(self, request): self.session = request.session cart = self.session.get(settings.CART_SESSION_ID) if not cart: cart = self.session[settings.CART_SESSION_ID] = {} self.cart = cart

def __iter__(self):
    for p in self.cart.keys():
        self.cart[str(p)]['product'] = Product.objects.get(pk=p)

def __len__(self):
    return sum(item['quantity'] for item in self.cart.values())

def save(self):
    self.session[settings.CART_SESSION_ID] = self.cart
    self.session.modified = True

def add(self, product_id, quantity=1, update_quantity=False):
    product_id = str(product_id)

    if product_id not in self.cart:
        self.cart[product_id] = {'quantity': 1, 'id': product_id}
    
    if update_quantity:
        self.cart[product_id]['quantity'] += int(quantity)

        if self.cart[product_id]['quantity'] == 0:
            self.remove(product_id)
        
    self.save()

def remove(self, product_id):
    if product_id in self.cart:
        del self.cart[product_id]
        self.save()

Мой Views.py :

def add_to_cart(request,product_id):
cart = Cart(request)
cart.add(product_id)

return render(request,'menu_cart.html')

я не знаю, что не так с кодом, пожалуйста, помогите, спасибо.

Редактирование: Full Traceback:

Вероятно, вы установили SESSION_COOKIE_AGE параметр [Django-doc] как строку, например '1209600', тогда как это должно быть число, так:

# settings.py

SESSION_COOKIE_AGE = 1209600  # 🖘 not a string (i.e. not '1209600')
Вернуться на верх