1
0
mirror of https://github.com/django/django.git synced 2025-07-19 17:19:12 +00:00

[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.


git-svn-id: http://code.djangoproject.com/svn/django/branches/releases/1.0.X@9712 bcc190cf-cafb-0310-a4f2-bffc1f526a37
This commit is contained in:
Justin Bronn 2009-01-07 20:23:23 +00:00
parent f6cacacbff
commit f3f251a6de

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