Django - Объект типа Decimal не является сериализуемым в JSON

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

TypeError at /cart/
Object of type Decimal is not JSON serializable
Request Method: GET
Request URL:    http://127.0.0.1:8000/cart/
Django Version: 4.0.4
Exception Type: TypeError
Exception Value:    
Object of type Decimal is not JSON serializable

Дело в том, что я храню избранное и корзину в одной сессии, и когда одна из них не заполнена (избранное/корзина), появляется эта ошибка. Когда товары находятся в обоих списках, все в порядке.

allow_nan   
    True
    check_circular  
    True
    cls 
    <class 'json.encoder.JSONEncoder'>
    default 
    None
    ensure_ascii    
    True
    indent  
    None
    kw  
    {}
    obj 
    {'cart': {'2': {'price': Decimal('123123.12'),
                    'product': <Product: test1>,
                    'quantity': 2,
                    'total_price': Decimal('246246.24'),
                    'update_quantity_form': <CartAddProductForm bound=False, valid=Unknown, fields=(quantity;update)>}},
     'favorites': {}}
    separators  
    (',', ':')
    skipkeys    
    False
    sort_keys   
    False

Если я добавляю товар в избранное и удаляю товар из корзины, я уже получаю эту ошибку

TypeError at /favorites/
Object of type Product is not JSON serializable
Request Method: GET
Request URL:    http://127.0.0.1:8000/favorites/
Django Version: 4.0.4
Exception Type: TypeError
Exception Value:    
Object of type Product is not JSON serializable
Exception Location: E:\Python\lib\json\encoder.py, line 179, in default
Python Executable:  E:\Дипломная_работа\venv\Scripts\python.exe
Python Version: 3.9.5

Как я могу это исправить?

использовать

return render(request, 'main/cart.html', {'cart': json.dumps(cart,cls=DjangoJsonEncoder), 'form': form})
Вернуться на верх