Opened 17 years ago
Closed 17 years ago
#10040 closed (invalid)
GeoDjango: 'Save As' on spatial record (OSMGeoAdmin) creates broken copy *AND* corrupts the original record
| Reported by: | Owned by: | nobody | |
|---|---|---|---|
| Component: | GIS | Version: | 1.0 |
| Severity: | Keywords: | ||
| Cc: | Triage Stage: | Unreviewed | |
| Has patch: | no | Needs documentation: | no |
| Needs tests: | no | Patch needs improvement: | no |
| Easy pickings: | no | UI/UX: | no |
Description (last modified by )
Traceback for original record in Admin after SaveAs failed and created a dud copy:
Environment:
Request Method: GET
Request URL: http://url/admin/geo/borders/136/
Django Version: 1.0.2 final
Python Version: 2.5.2
Installed Applications:
['django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.flatpages',
'django.contrib.sessions',
'django.contrib.sites',
'django.contrib.admin',
'django.contrib.gis',
'vovo.geo']
Installed Middleware:
('django.middleware.common.CommonMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.flatpages.middleware.FlatpageFallbackMiddleware')
Traceback:
File "/usr/lib/python2.5/site-packages/django/core/handlers/base.py" in get_response
86. response = callback(request, *callback_args, **callback_kwargs)
File "/usr/lib/python2.5/site-packages/django/contrib/admin/sites.py" in root
157. return self.model_page(request, *url.split('/', 2))
File "/usr/lib/python2.5/site-packages/django/views/decorators/cache.py" in _wrapped_view_func
44. response = view_func(request, *args, **kwargs)
File "/usr/lib/python2.5/site-packages/django/contrib/admin/sites.py" in model_page
176. return admin_obj(request, rest_of_url)
File "/usr/lib/python2.5/site-packages/django/contrib/admin/options.py" in __call__
197. return self.change_view(request, unquote(url))
File "/usr/lib/python2.5/site-packages/django/db/transaction.py" in _commit_on_success
238. res = func(*args, **kw)
File "/usr/lib/python2.5/site-packages/django/contrib/admin/options.py" in change_view
590. form = ModelForm(instance=obj)
File "/usr/lib/python2.5/site-packages/django/forms/models.py" in __init__
216. object_data = model_to_dict(instance, opts.fields, opts.exclude)
File "/usr/lib/python2.5/site-packages/django/forms/models.py" in model_to_dict
138. data[f.name] = f.value_from_object(instance)
File "/usr/lib/python2.5/site-packages/django/db/models/fields/__init__.py" in value_from_object
332. return getattr(obj, self.attname)
File "/usr/lib/python2.5/site-packages/django/contrib/gis/db/models/proxy.py" in __get__
36. geom = self._klass(geom_value)
File "/usr/lib/python2.5/site-packages/django/contrib/gis/geos/base.py" in __init__
66. g = from_hex(geo_input, len(geo_input))
File "/usr/lib/python2.5/site-packages/django/contrib/gis/geos/prototypes/errcheck.py" in check_geom
32. raise GEOSException('Error encountered checking Geometry returned from GEOS C function "%s".' % func.__name__)
Exception Type: GEOSException at /admin/geo/borders/136/
Exception Value: Error encountered checking Geometry returned from GEOS C function "GEOSGeomFromHEX_buf".
The copy suffered much the same problem.
If I've not missed anything substantial (which is quite an If, honestly) I'd call something that causes data loss to be Critical.
Change History (4)
follow-up: 3 comment:1 by , 17 years ago
comment:2 by , 17 years ago
| Description: | modified (diff) |
|---|
comment:3 by , 17 years ago
Replying to springmeyer:
John,
This is most likely an installation problem with proj4. Please make sure you have installed proj4 correctly (from source), including the datum files. For more information see http://geodjango.org/docs/install.html#proj-4
Also see ticket #9295 for work on provided a better error message.
Well, yes and no.
proj is indeed the cause of the stuffed data, but my real point is that admin is modifying the original record despite being explicitly told not to. Admin, in this case, has no business changing the record I'm *not* trying to modify.
comment:4 by , 17 years ago
| Resolution: | → invalid |
|---|---|
| Status: | new → closed |
I broke my PROJ.4 (sudo mv /usr/local/share/proj/null /usr/local/share/proj/foonull), added save_as = True to my OSMGeoAdmin class for the WorldBorders model (from the GeoDjango tutorial). While the original record was intact after modifying and clicking "Save As" in the admin, the new copy was broken. This was to be expected if the admin was working correctly and the PROJ.4 missing the data files. I did this in trunk and 1.0.X from SVN.
If a reproducible test case is provided that demonstrates the problem, I'll gladly reopen. But I'm with Dane & Josh this is a PROJ.4 installation problem that's being addressed in #9295.
John,
This is most likely an installation problem with proj4. Please make sure you have installed proj4 correctly (from source), including the datum files. For more information see http://geodjango.org/docs/install.html#proj-4
Also see ticket #9295 for work on provided a better error message.
Another solution is to not use the OSMGeoAdmin and rather switch to using the GeoAdmin.