From f4b54d5511dff0c333a0b1f414a5d2110baf58e9 Mon Sep 17 00:00:00 2001 From: Kevin Audleman Date: Mon, 3 Nov 2014 16:05:08 -0800 Subject: [PATCH] Adds a Django settings override for parse_float --- json_field/fields.py | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/json_field/fields.py b/json_field/fields.py index d6e172d..260b976 100644 --- a/json_field/fields.py +++ b/json_field/fields.py @@ -9,6 +9,7 @@ from django.utils import simplejson as json from django.db import models +from django.conf import settings from django.core import exceptions from django.utils.translation import ugettext_lazy as _ from django.core.exceptions import ImproperlyConfigured @@ -27,6 +28,9 @@ except AttributeError: JSON_DECODE_ERROR = ValueError # other + +JSON_FIELD_PARSE_FLOAT = getattr(settings, 'JSON_FIELD_PARSE_FLOAT', decimal.Decimal) + TIME_FMT = r'\d{2}:\d{2}:\d{2}(\.\d+)?' DATE_FMT = r'\d{4}-\d{2}-\d{2}' TIMEZONE_FMT = r'(\+|\-)\d{2}:\d{2}' @@ -155,7 +159,7 @@ def __init__(self, *args, **kwargs): if not encoder_kwargs and encoder: encoder_kwargs.update({'cls':encoder}) if not decoder_kwargs and decoder: - decoder_kwargs.update({'cls':decoder, 'parse_float':decimal.Decimal}) + decoder_kwargs.update({'cls':decoder, 'parse_float': JSON_FIELD_PARSE_FLOAT}) self.encoder_kwargs = encoder_kwargs self.decoder_kwargs = decoder_kwargs