Django JSON Serizeable Type Ошибка с пустым списком - PullRequest
0 голосов
/ 29 марта 2019

Я хочу создать корзину с элементами, хранящимися в сеансе, используя 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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...