From a76c3ed051f7d8e26db82450a20cdb9f4a683116 Mon Sep 17 00:00:00 2001 From: areski Date: Thu, 7 Jan 2016 18:46:54 +0100 Subject: [PATCH 1/2] Fixed TimeField not handling empty values --- rest_framework/fields.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/rest_framework/fields.py b/rest_framework/fields.py index deca9d90d..67dd3b6c7 100644 --- a/rest_framework/fields.py +++ b/rest_framework/fields.py @@ -1204,6 +1204,8 @@ class TimeField(Field): ) if output_format.lower() == ISO_8601: + if (isinstance(value, str)): + value = datetime.datetime.strptime(value, '%H:%M:%S').time() return value.isoformat() return value.strftime(output_format) From 4e017963034502531313cba0620299ce06fc94e8 Mon Sep 17 00:00:00 2001 From: areski Date: Mon, 11 Jan 2016 12:16:26 +0100 Subject: [PATCH 2/2] Test for TimeField not handling empty values --- rest_framework/fields.py | 2 +- tests/test_fields.py | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/rest_framework/fields.py b/rest_framework/fields.py index 67dd3b6c7..a2b0f3bf1 100644 --- a/rest_framework/fields.py +++ b/rest_framework/fields.py @@ -1204,7 +1204,7 @@ class TimeField(Field): ) if output_format.lower() == ISO_8601: - if (isinstance(value, str)): + if isinstance(value, six.string_types): value = datetime.datetime.strptime(value, '%H:%M:%S').time() return value.isoformat() return value.strftime(output_format) diff --git a/tests/test_fields.py b/tests/test_fields.py index 4b3a36f03..43441c2e7 100644 --- a/tests/test_fields.py +++ b/tests/test_fields.py @@ -1032,6 +1032,7 @@ class TestTimeField(FieldValues): } outputs = { datetime.time(13, 00): '13:00:00', + '00:00:00': '00:00:00', None: None, '': None, }