yourcelf / olwidget

Javascript library to replace textareas that contain WKT data with editable OpenLayers maps, and a django app using it for django forms and admin.
Other
91 stars 43 forks source link

Error "Invalid OGR String Type" in test_project when editing a collection of models #32

Closed tylere closed 14 years ago

tylere commented 14 years ago

Steps to reproduce:

  1. reset the olwidget test_project database
  2. start up the test_project using the django webserver
  3. Go to: http://localhost:8000/test/multi/edit
  4. Add a point to the first map.
  5. Click 'Submit Query'

    Environment

    django

version: 1.2 pre-alpha SVN-11787

olwidget

commit 169a567235511647455e2309fdd9a14fe14496b5 Author: Charlie DeTar tc1@tc1book.(none) Date: Mon Dec 14 21:02:13 2009 -0500 preserving attributes object to allow custom attributes

GEOS

version: 3.1.1

Django Error Trace

Environment: Request Method: POST Request URL: http://localhost:8000/test/multi/edit Django Version: 1.2 pre-alpha SVN-11787 Python Version: 2.6.2 Installed Applications: ['django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.sites', 'django.contrib.admin', 'django.contrib.gis', 'testolwidget', 'olwidget'] Installed Middleware: ('django.middleware.common.CommonMiddleware', 'django.contrib.sessions.middleware.SessionMiddleware', 'django.contrib.auth.middleware.AuthenticationMiddleware')

Template error: In template /usr/local/olwidget/django-olwidget/test_project/testolwidget/templates/testolwidget/edit_map.html, error at line 15 Caught an exception while rendering: Invalid OGR String Type "srid=4326;multipoint(10.810546874569 -2.2845506601458)"

Traceback: File "/usr/local/django/django-svn-trunk/django/core/handlers/base.py" in get_response

  1. response = callback(request, _callback_args, *_callback_kwargs) File "/usr/local/olwidget/django-olwidget/test_project/testolwidget/views.py" in edit_multigeomodel
  2. return edit_model(request, model_id, MultiGeoModelForm) File "/usr/local/olwidget/django-olwidget/test_project/testolwidget/views.py" in edit_model
  3. RequestContext(request)) File "/usr/local/django/django-svn-trunk/django/shortcuts/init.py" in render_to_response
  4. return HttpResponse(loader.render_to_string(_args, *_kwargs), **httpresponse_kwargs) File "/usr/local/django/django-svn-trunk/django/template/loader.py" in render_to_string
  5. return t.render(context_instance) File "/usr/local/django/django-svn-trunk/django/template/init.py" in render
  6. return self.nodelist.render(context) File "/usr/local/django/django-svn-trunk/django/template/init.py" in render
  7. bits.append(self.render_node(node, context)) File "/usr/local/django/django-svn-trunk/django/template/debug.py" in render_node
  8. result = node.render(context) File "/usr/local/django/django-svn-trunk/django/template/loader_tags.py" in render
  9. return compiled_parent.render(context) File "/usr/local/django/django-svn-trunk/django/template/init.py" in render
  10. return self.nodelist.render(context) File "/usr/local/django/django-svn-trunk/django/template/init.py" in render
  11. bits.append(self.render_node(node, context)) File "/usr/local/django/django-svn-trunk/django/template/debug.py" in render_node
  12. result = node.render(context) File "/usr/local/django/django-svn-trunk/django/template/loader_tags.py" in render
  13. result = self.nodelist.render(context) File "/usr/local/django/django-svn-trunk/django/template/init.py" in render
  14. bits.append(self.render_node(node, context)) File "/usr/local/django/django-svn-trunk/django/template/debug.py" in render_node
  15. raise wrapped

Exception Type: TemplateSyntaxError at /test/multi/edit Exception Value: Caught an exception while rendering: Invalid OGR String Type "srid=4326;multipoint(10.810546874569 -2.2845506601458)"

yourcelf commented 14 years ago

Thanks. It appears that OGRGeometry stopped accepting EWKT as input, and instead requires WKT. I've added code to split the SRID from the WKT string, so this should be fixed in the latest master.

As soon as http://code.djangoproject.com/ticket/12312 is fixed, it should be possible to make this implementation less clumsy.

yourcelf commented 14 years ago

.