Объект типа 'Decimal' не является сериализуемым JSON Ошибка при использовании объекта, унаследованного от запроса - PullRequest
0 голосов
/ 03 июля 2018

У меня странная проблема с созданием корзины I в Django 2.0. Sopping cart - это объект, унаследованный от запроса и сохраненный в сеансе:

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

У меня нет проблем с методами set и get, но странная проблема появился в общей сумме функции:

    def get_total_price(self):
        return sum(Decimal(item['price']) * item['quantity'] for item in self.cart.values())

Я получил ошибку:

Объект типа 'Десятичный' не поддерживает сериализацию в формате JSON

Но get_total_price ничего не хранит в сессии, это только для представления. (элемент ['цена'] хранится в виде строки)

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...