Browse files

gis: Fixed #5438 with patches from rcoup.

git-svn-id: http://code.djangoproject.com/svn/django/branches/gis@6243 bcc190cf-cafb-0310-a4f2-bffc1f526a37
  • Loading branch information...
1 parent d1d5cf7 commit 483a807c063e24f09ecf5ce74d1e241f4c81368c @jbronn jbronn committed Sep 14, 2007
Showing with 9 additions and 2 deletions.
  1. +4 −2 django/contrib/gis/db/models/proxy.py
  2. +5 −0 django/contrib/gis/tests/geoapp/tests.py
View
6 django/contrib/gis/db/models/proxy.py
@@ -19,10 +19,12 @@ def __get__(self, obj, type=None):
# Getting the value of the field.
geom_value = obj.__dict__[self._field.attname]
- if (geom_value is None) or (isinstance(geom_value, GEOSGeometry)):
+ if isinstance(geom_value, GEOSGeometry):
# If the value of the field is None, or is already a GEOS Geometry
# no more work is needed.
- geom = geom_value
+ geom = geom_value
+ elif (geom_value is None) or (geom_value==''):
+ geom = None
else:
# Otherwise, a GEOSGeometry object is built using the field's contents,
# and the model's corresponding attribute is set.
View
5 django/contrib/gis/tests/geoapp/tests.py
@@ -256,6 +256,11 @@ def test15_relate(self):
self.assertEqual('Texas', Country.objects.get(mpoly__relate=(pnt2, 'T********')).name)
self.assertEqual('Lawrence', City.objects.get(point__relate=(ks.poly, 'T********')).name)
+ def test16_createnull(self):
+ "Testing creating a model instance and the geometry being None"
+ c = City()
+ self.assertEqual(c.point, None)
+
def suite():
s = unittest.TestSuite()
s.addTest(unittest.makeSuite(GeoModelTest))

0 comments on commit 483a807

Please sign in to comment.