Я хочу создать корзину с элементами, хранящимися в сеансе, используя Django.
Десятичное число ('100') не является сериализуемым JSON
100 - это значение, возвращаемое функцией get_shop_price () в продуктемодель, но она не упоминается при объявлении пустого списка.
Я уже пытался решить эту проблему, и я знаю, что это не происходит с очень похожим кодом в другом модуле, а также не появляется, когда я удаляю строку, отвечающую за сохранение пустого списка в сессии.
Я также уточнил, что, вероятно, где-то по пути код пытается проанализировать мой класс Product в сессии, но я не знаю, почему и где.
Класс проблемной корзины
from decimal import Decimal
from django.conf import settings
from shop.models import Product
class Basket(object):
def __init__(self, request):
"""
Inicjalizacja koszyka na zakupy.
"""
self.session = request.session
cart = self.session.get(settings.BASKET_SESSION_ID)
if not cart:
# Zapis pustego koszyka na zakupy w sesji.
cart = self.session[settings.BASKET_SESSION_ID] = {}
self.cart = cart
Кусок кода, который был удален, удаляет ошибку (и цель этого кода)
self.session[settings.BASKET_SESSION_ID] = {}
Очень похожий класс, который отлично работает из десятичного импорта. Десятичный из django.conf. Параметры импорта из магазина. Импорт моделей. Product
class Cart(object):
def __init__(self, request):
"""
Inicjalizacja koszyka na zakupy.
"""
self.session = request.session
cart = self.session.get(settings.CART_SESSION_ID)
if not cart:
# Zapis pustego koszyka na zakupy w sesji.
cart = self.session[settings.CART_SESSION_ID] = {}
self.cart = cart