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
This commit is contained in:
Justin Bronn 2009-01-07 20:21:19 +00:00
parent bde7e79fb3
commit 300752bd6c
1 changed files with 6 additions and 6 deletions

View File

@ -127,34 +127,34 @@ class OFTDate(Field):
@property @property
def value(self): def value(self):
"Returns a Python `date` object for the OFTDate field." "Returns a Python `date` object for the OFTDate field."
yy, mm, dd, hh, mn, ss, tz = self.as_datetime()
try: try:
yy, mm, dd, hh, mn, ss, tz = self.as_datetime()
return date(yy.value, mm.value, dd.value) return date(yy.value, mm.value, dd.value)
except ValueError: except (ValueError, OGRException):
return None return None
class OFTDateTime(Field): class OFTDateTime(Field):
@property @property
def value(self): def value(self):
"Returns a Python `datetime` object for this OFTDateTime field." "Returns a Python `datetime` object for this OFTDateTime field."
yy, mm, dd, hh, mn, ss, tz = self.as_datetime()
# TODO: Adapt timezone information. # TODO: Adapt timezone information.
# See http://lists.maptools.org/pipermail/gdal-dev/2006-February/007990.html # See http://lists.maptools.org/pipermail/gdal-dev/2006-February/007990.html
# The `tz` variable has values of: 0=unknown, 1=localtime (ambiguous), # The `tz` variable has values of: 0=unknown, 1=localtime (ambiguous),
# 100=GMT, 104=GMT+1, 80=GMT-5, etc. # 100=GMT, 104=GMT+1, 80=GMT-5, etc.
try: 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) return datetime(yy.value, mm.value, dd.value, hh.value, mn.value, ss.value)
except ValueError: except (ValueError, OGRException):
return None return None
class OFTTime(Field): class OFTTime(Field):
@property @property
def value(self): def value(self):
"Returns a Python `time` object for this OFTTime field." "Returns a Python `time` object for this OFTTime field."
yy, mm, dd, hh, mn, ss, tz = self.as_datetime()
try: try:
yy, mm, dd, hh, mn, ss, tz = self.as_datetime()
return time(hh.value, mn.value, ss.value) return time(hh.value, mn.value, ss.value)
except ValueError: except (ValueError, OGRException):
return None return None
# List fields are also just subclasses # List fields are also just subclasses