Десятичный не JSON-сериализуемый
У меня есть расчет, который рассчитывает налог, когда пользователь проверяет с помощью Cartridge
в качестве основы моего магазина.
tax = tax * Decimal(str(settings.SHOP_DEFAULT_TAX_RATE))
Расчет работает правильно. Я потом сдаю tax
в set_tax(request, _("GST+PST"), tax)
Когда я это делаю, я получаю сообщение об ошибке Decimal('12.0') is not JSON serializable
,
Когда я конвертирую его в float (set_tax(request, _("GST+PST"), float(tax))
оно работает; но когда я прохожу проверку, я получаю эту ошибку:
unsupported operand type(s) for +=: 'Decimal' and 'float'
В моих настройках:
SHOP_DEFAULT_TAX_RATE = 0.12
Я видел решения, где мне нужно использовать пользовательский JSONEncoder, но ошибка происходит внутри самого Django.
Благодарю.
1 ответ
Это было исправлено пару недель назад, но еще не было выпущено:
https://github.com/stephenmcd/cartridge/commit/628bd203f39a62d9de2613de7057e6742657111f
К счастью, вы можете добавить версию для разработки прямо сейчас.
Кстати, десятичный - это правильный тип для использования.