From 300752bd6c0bfdf3bdf85e61fed318f4e587b16a Mon Sep 17 00:00:00 2001 From: Justin Bronn Date: Wed, 7 Jan 2009 20:21:19 +0000 Subject: [PATCH] Return None for null date/time fields in OGR-supported data sources. Thanks to Ariel Mauricio Nunez Gomez for bug report and initial patch. git-svn-id: http://code.djangoproject.com/svn/django/trunk@9711 bcc190cf-cafb-0310-a4f2-bffc1f526a37 --- django/contrib/gis/gdal/field.py | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/django/contrib/gis/gdal/field.py b/django/contrib/gis/gdal/field.py index ad1feb3d22..6374bc7d80 100644 --- a/django/contrib/gis/gdal/field.py +++ b/django/contrib/gis/gdal/field.py @@ -127,34 +127,34 @@ class OFTDate(Field): @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