1

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 自体の内部でエラーが発生します。

ありがとう。

4

1 に答える 1

3

これは数週間前に修正されましたが、まだリリースされていません。

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

幸いなことに、今すぐ開発バージョンを依存関係として追加できます。

ところで、10 進数は使用する正しい型です。

于 2014-03-14T03:36:39.197 に答える