json.py 402 B

1234567891011121314151617
  1. import decimal
  2. from django.core.serializers.json import DjangoJSONEncoder
  3. __all__ = (
  4. 'CustomFieldJSONEncoder',
  5. )
  6. class CustomFieldJSONEncoder(DjangoJSONEncoder):
  7. """
  8. Override Django's built-in JSON encoder to save decimal values as JSON numbers.
  9. """
  10. def default(self, o):
  11. if isinstance(o, decimal.Decimal):
  12. return float(o)
  13. return super().default(o)