aboutsummaryrefslogtreecommitdiffstats
path: root/rest_framework/fields.py
diff options
context:
space:
mode:
authorTom Christie2013-03-30 15:41:38 +0000
committerTom Christie2013-03-30 15:41:38 +0000
commitb4945f476c5e18be60429441abc0671bf7b193ec (patch)
treea16524b93f1ec4e775c380005cb2b8cf33e90054 /rest_framework/fields.py
parent922ee61d8611b41e2944b6503af736b1790abe83 (diff)
parent399ac70b831d782b7d774950b59f3b2066ab86f7 (diff)
downloaddjango-rest-framework-b4945f476c5e18be60429441abc0671bf7b193ec.tar.bz2
Merge branch 'master' into resources-routers
Diffstat (limited to 'rest_framework/fields.py')
-rw-r--r--rest_framework/fields.py23
1 files changed, 13 insertions, 10 deletions
diff --git a/rest_framework/fields.py b/rest_framework/fields.py
index 4b6931ad..f3496b53 100644
--- a/rest_framework/fields.py
+++ b/rest_framework/fields.py
@@ -494,7 +494,7 @@ class DateField(WritableField):
}
empty = None
input_formats = api_settings.DATE_INPUT_FORMATS
- format = api_settings.DATE_FORMAT
+ format = None
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
@@ -536,8 +536,8 @@ class DateField(WritableField):
raise ValidationError(msg)
def to_native(self, value):
- if value is None:
- return None
+ if value is None or self.format is None:
+ return value
if isinstance(value, datetime.datetime):
value = value.date()
@@ -557,7 +557,7 @@ class DateTimeField(WritableField):
}
empty = None
input_formats = api_settings.DATETIME_INPUT_FORMATS
- format = api_settings.DATETIME_FORMAT
+ format = None
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
@@ -605,11 +605,14 @@ class DateTimeField(WritableField):
raise ValidationError(msg)
def to_native(self, value):
- if value is None:
- return None
+ if value is None or self.format is None:
+ return value
if self.format.lower() == ISO_8601:
- return value.isoformat()
+ ret = value.isoformat()
+ if ret.endswith('+00:00'):
+ ret = ret[:-6] + 'Z'
+ return ret
return value.strftime(self.format)
@@ -623,7 +626,7 @@ class TimeField(WritableField):
}
empty = None
input_formats = api_settings.TIME_INPUT_FORMATS
- format = api_settings.TIME_FORMAT
+ format = None
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
@@ -658,8 +661,8 @@ class TimeField(WritableField):
raise ValidationError(msg)
def to_native(self, value):
- if value is None:
- return None
+ if value is None or self.format is None:
+ return value
if isinstance(value, datetime.datetime):
value = value.time()