python - 使用请求继承对象时,“十进制”类型的对象不是 JSON 可序列化错误
问题描述
我在 Django 2.0 中创建购物车时遇到了一个奇怪的问题。购物车是从请求继承的对象并存储在会话中:
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 在会话中没有存储任何东西,它只是为了表示。(item['price'] 存储为字符串)
解决方案
推荐阅读
- android - 如何在 Kotlin 中反转 ArrayList?
- php - Symfony Validator,如何在 AtLeastOneOf 中结合约束来做 A OR (B AND C)
- javascript - 如何在 deno 测试中传递命令行参数?
- python - Django Admin CSS没有加载
- hibernate - 将@IDClass 与@JoinColumn 结合使用
- javascript - 在 Typescript 中读取 CSV 在读取数字时会给出 NaN
- excel - 如何使用 VBA 从各个列中选择和复制数据并将它们堆叠粘贴到一列中?
- ruby - BDD 在本地工作,但在带有 Alpine Linux 的 GitLab Pipeline 中不起作用
- python - 过滤 QTableView 中的多列
- android - 在 kotlin 中启动一系列计时器