aboutsummaryrefslogtreecommitdiffstats
path: root/rest_framework
diff options
context:
space:
mode:
authorTom Christie2014-09-12 12:10:22 +0100
committerTom Christie2014-09-12 12:10:22 +0100
commit79715f01f8c34fdd55c2291b6b21d09fa3a8153e (patch)
treeacc699e6ebf81957a57b4fc9807ee5ce2084cf8b /rest_framework
parent22af49bf8ffc73afc9b638f1b9cd2e909c6c89a8 (diff)
downloaddjango-rest-framework-79715f01f8c34fdd55c2291b6b21d09fa3a8153e.tar.bz2
Coerce dates etc to ISO_8601 in seralizer, by default.
Diffstat (limited to 'rest_framework')
-rw-r--r--rest_framework/fields.py24
-rw-r--r--rest_framework/settings.py21
2 files changed, 21 insertions, 24 deletions
diff --git a/rest_framework/fields.py b/rest_framework/fields.py
index 9d96cf5c..e1855ff7 100644
--- a/rest_framework/fields.py
+++ b/rest_framework/fields.py
@@ -431,10 +431,12 @@ class DecimalField(Field):
'max_whole_digits': _('Ensure that there are no more than {max_whole_digits} digits before the decimal point.')
}
- def __init__(self, max_digits, decimal_places, coerce_to_string=True, max_value=None, min_value=None, **kwargs):
+ coerce_to_string = api_settings.COERCE_DECIMAL_TO_STRING
+
+ def __init__(self, max_digits, decimal_places, coerce_to_string=None, max_value=None, min_value=None, **kwargs):
self.max_digits = max_digits
self.decimal_places = decimal_places
- self.coerce_to_string = coerce_to_string
+ self.coerce_to_string = coerce_to_string if (coerce_to_string is not None) else self.coerce_to_string
super(DecimalField, self).__init__(**kwargs)
if max_value is not None:
self.validators.append(validators.MaxValueValidator(max_value))
@@ -510,12 +512,12 @@ class DateField(Field):
default_error_messages = {
'invalid': _('Date has wrong format. Use one of these formats instead: {format}'),
}
- input_formats = api_settings.DATE_INPUT_FORMATS
format = api_settings.DATE_FORMAT
+ input_formats = api_settings.DATE_INPUT_FORMATS
- def __init__(self, input_formats=None, format=None, *args, **kwargs):
- self.input_formats = input_formats if input_formats is not None else self.input_formats
+ def __init__(self, format=None, input_formats=None, *args, **kwargs):
self.format = format if format is not None else self.format
+ self.input_formats = input_formats if input_formats is not None else self.input_formats
super(DateField, self).__init__(*args, **kwargs)
def to_internal_value(self, value):
@@ -569,12 +571,12 @@ class DateTimeField(Field):
default_error_messages = {
'invalid': _('Datetime has wrong format. Use one of these formats instead: {format}'),
}
- input_formats = api_settings.DATETIME_INPUT_FORMATS
format = api_settings.DATETIME_FORMAT
+ input_formats = api_settings.DATETIME_INPUT_FORMATS
- def __init__(self, input_formats=None, format=None, *args, **kwargs):
- self.input_formats = input_formats if input_formats is not None else self.input_formats
+ def __init__(self, format=None, input_formats=None, *args, **kwargs):
self.format = format if format is not None else self.format
+ self.input_formats = input_formats if input_formats is not None else self.input_formats
super(DateTimeField, self).__init__(*args, **kwargs)
def to_internal_value(self, value):
@@ -634,12 +636,12 @@ class TimeField(Field):
default_error_messages = {
'invalid': _('Time has wrong format. Use one of these formats instead: {format}'),
}
- input_formats = api_settings.TIME_INPUT_FORMATS
format = api_settings.TIME_FORMAT
+ input_formats = api_settings.TIME_INPUT_FORMATS
- def __init__(self, input_formats=None, format=None, *args, **kwargs):
- self.input_formats = input_formats if input_formats is not None else self.input_formats
+ def __init__(self, format=None, input_formats=None, *args, **kwargs):
self.format = format if format is not None else self.format
+ self.input_formats = input_formats if input_formats is not None else self.input_formats
super(TimeField, self).__init__(*args, **kwargs)
def from_native(self, value):
diff --git a/rest_framework/settings.py b/rest_framework/settings.py
index e55610bb..421e146c 100644
--- a/rest_framework/settings.py
+++ b/rest_framework/settings.py
@@ -97,24 +97,19 @@ DEFAULTS = {
'URL_FIELD_NAME': 'url',
# Input and output formats
- 'DATE_INPUT_FORMATS': (
- ISO_8601,
- ),
- 'DATE_FORMAT': None,
+ 'DATE_FORMAT': ISO_8601,
+ 'DATE_INPUT_FORMATS': (ISO_8601,),
- 'DATETIME_INPUT_FORMATS': (
- ISO_8601,
- ),
- 'DATETIME_FORMAT': None,
+ 'DATETIME_FORMAT': ISO_8601,
+ 'DATETIME_INPUT_FORMATS': (ISO_8601,),
- 'TIME_INPUT_FORMATS': (
- ISO_8601,
- ),
- 'TIME_FORMAT': None,
+ 'TIME_FORMAT': ISO_8601,
+ 'TIME_INPUT_FORMATS': (ISO_8601,),
# Encoding
'UNICODE_JSON': True,
- 'COMPACT_JSON': True
+ 'COMPACT_JSON': True,
+ 'COERCE_DECIMAL_TO_STRING': True
}