1

我有一个计算,当用户使用Cartridge我的商店框架结账时计算税款。

tax = tax * Decimal(str(settings.SHOP_DEFAULT_TAX_RATE))

计算工作正常。然后我传递taxset_tax(request, _("GST+PST"), tax)

当我这样做时,我得到一个错误Decimal('12.0') is not JSON serializable

当我将其转换为浮点数时(set_tax(request, _("GST+PST"), float(tax))它可以工作;但是当我通过结帐时出现此错误:

unsupported operand type(s) for +=: 'Decimal' and 'float'

在我的设置中:

  • SHOP_DEFAULT_TAX_RATE = 0.12

我见过需要使用自定义 JSONEncoder 但错误发生在 Django 本身内部的解决方案。

谢谢。

4

1 回答 1

3

这在几周前已修复,但尚未发布:

https://github.com/stephenmcd/cartridge/commit/628bd203f39a62d9de2613de7057e6742657111f

幸运的是,您现在可以将开发版本添加为依赖项。

顺便说一句,十进制是要使用的正确类型。

于 2014-03-14T03:36:39.197 回答