From ad336cc636d98022ea7eda516a04a7937eb32238 Mon Sep 17 00:00:00 2001
From: Tom Christie <tom@tomchristie.com>
Date: Thu, 7 Mar 2013 09:03:53 +0000
Subject: [PATCH] Fix broken `None` value for `TimeField`.

Refs #707.
---
 rest_framework/fields.py | 7 +++++++
 1 file changed, 7 insertions(+)

diff --git a/rest_framework/fields.py b/rest_framework/fields.py
index e9bae0ec9..0a199f102 100644
--- a/rest_framework/fields.py
+++ b/rest_framework/fields.py
@@ -536,8 +536,10 @@ class DateField(WritableField):
     def to_native(self, value):
         if value is None:
             return None
+
         if isinstance(value, datetime.datetime):
             value = value.date()
+
         if self.format.lower() == ISO_8601:
             return value.isoformat()
         return value.strftime(self.format)
@@ -603,6 +605,7 @@ class DateTimeField(WritableField):
     def to_native(self, value):
         if value is None:
             return None
+
         if self.format.lower() == ISO_8601:
             return value.isoformat()
         return value.strftime(self.format)
@@ -653,8 +656,12 @@ class TimeField(WritableField):
         raise ValidationError(msg)
 
     def to_native(self, value):
+        if value is None:
+            return None
+
         if isinstance(value, datetime.datetime):
             value = value.time()
+
         if self.format.lower() == ISO_8601:
             return value.isoformat()
         return value.strftime(self.format)