Author: jbronn
Date: 2009-01-07 14:23:23 -0600 (Wed, 07 Jan 2009)
New Revision: 9712

Modified:
   django/branches/releases/1.0.X/django/contrib/gis/gdal/field.py
Log:
[1.0.X] Return None for null date/time fields in OGR-supported data sources.  
Thanks to Ariel Mauricio Nunez Gomez for bug report and initial patch.

Backport of r9711 from trunk.


Modified: django/branches/releases/1.0.X/django/contrib/gis/gdal/field.py
===================================================================
--- django/branches/releases/1.0.X/django/contrib/gis/gdal/field.py     
2009-01-07 20:21:19 UTC (rev 9711)
+++ django/branches/releases/1.0.X/django/contrib/gis/gdal/field.py     
2009-01-07 20:23:23 UTC (rev 9712)
@@ -127,34 +127,34 @@
     @property
     def value(self):
         "Returns a Python `date` object for the OFTDate field."
-        yy, mm, dd, hh, mn, ss, tz = self.as_datetime()
         try:
+            yy, mm, dd, hh, mn, ss, tz = self.as_datetime()
             return date(yy.value, mm.value, dd.value)
-        except ValueError:
+        except (ValueError, OGRException):
             return None
 
 class OFTDateTime(Field):
     @property
     def value(self):
         "Returns a Python `datetime` object for this OFTDateTime field."
-        yy, mm, dd, hh, mn, ss, tz = self.as_datetime()
         # TODO: Adapt timezone information.
         #  See 
http://lists.maptools.org/pipermail/gdal-dev/2006-February/007990.html
         #  The `tz` variable has values of: 0=unknown, 1=localtime 
(ambiguous), 
         #  100=GMT, 104=GMT+1, 80=GMT-5, etc.
         try:
+            yy, mm, dd, hh, mn, ss, tz = self.as_datetime()
             return datetime(yy.value, mm.value, dd.value, hh.value, mn.value, 
ss.value)
-        except ValueError:
+        except (ValueError, OGRException):
             return None
 
 class OFTTime(Field):
     @property
     def value(self):
         "Returns a Python `time` object for this OFTTime field."
-        yy, mm, dd, hh, mn, ss, tz = self.as_datetime()
         try:
+            yy, mm, dd, hh, mn, ss, tz = self.as_datetime()
             return time(hh.value, mn.value, ss.value)
-        except ValueError:
+        except (ValueError, OGRException):
             return None
 
 # List fields are also just subclasses


--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"Django updates" group.
To post to this group, send email to django-updates@googlegroups.com
To unsubscribe from this group, send email to 
django-updates+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/django-updates?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to