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')