I don't recall hearing about an issue like this so it is unlikely that
upgrading will fix it.  In fact very little has changed between GeoNode
1.1RC2 and 1.1 final.

However, there is an administrative command which is intended to help with
the situation where the Django application has a record for a layer that is
no longer registered with GeoServer.

$ geonode cleardeadlayers

This should identify all such layers and remove them from the Django
database.  Hope it helps.

--
David Winslow
OpenGeo - http://opengeo.org/

On Tue, Feb 14, 2012 at 12:46 PM, Andrew Ross <[email protected]> wrote:

> **
> Hello everyone,
>
> Deleting a layer is creating the error below.
>
> This is with GeoNode version 1.1 RC2.  The layer was removed from both
> GeoNetwork and GeoServer, but still showed up under the GeoNode admin.
> Tried to delete it a second time from the GeoNode admin and the same error
> was generated.
>
> Has this been fixed in version 1.1 Final?  Will upgrading fix it?
>
> Thanks, Andrew./
>
>
> -------------------------------------------------------------------------------------------------
> Environment:
>
> Request Method: POST
> Request URL: http://107.22.181.174/admin/maps/layer/
> Django Version: 1.2
> Python Version: 2.7.1
> Installed Applications:
> ['django.contrib.auth',
>  'django.contrib.contenttypes',
>  'django.contrib.sessions',
>  'django.contrib.sites',
>  'django.contrib.admin',
>  'django.contrib.sitemaps',
>  'staticfiles',
>  'django_extensions',
>  'registration',
>  'profiles',
>  'avatar',
>  'geonode.core',
>  'geonode.maps',
>  'geonode.proxy',
>  'geonode',
>  'monitor']
> Installed Middleware:
> ('django.middleware.common.CommonMiddleware',
>  'django.contrib.sessions.middleware.SessionMiddleware',
>  'django.middleware.locale.LocaleMiddleware',
>  'django.middleware.csrf.CsrfViewMiddleware',
>  'django.contrib.auth.middleware.AuthenticationMiddleware')
>
>
> Traceback:
> File
> "/var/lib/geonode/lib/python2.7/site-packages/django/core/handlers/base.py"
> in get_response
>   100.                     response = callback(request, *callback_args,
> **callback_kwargs)
> File
> "/var/lib/geonode/lib/python2.7/site-packages/django/contrib/admin/options.py"
> in wrapper
>   239.                 return self.admin_site.admin_view(view)(*args,
> **kwargs)
> File
> "/var/lib/geonode/lib/python2.7/site-packages/django/utils/decorators.py"
> in _wrapped_view
>   76.                     response = view_func(request, *args, **kwargs)
> File
> "/var/lib/geonode/lib/python2.7/site-packages/django/views/decorators/cache.py"
> in _wrapped_view_func
>   69.         response = view_func(request, *args, **kwargs)
> File
> "/var/lib/geonode/lib/python2.7/site-packages/django/contrib/admin/sites.py"
> in inner
>   190.             return view(request, *args, **kwargs)
> File
> "/var/lib/geonode/lib/python2.7/site-packages/django/utils/decorators.py"
> in _wrapper
>   21.             return decorator(bound_func)(*args, **kwargs)
> File
> "/var/lib/geonode/lib/python2.7/site-packages/django/utils/decorators.py"
> in _wrapped_view
>   76.                     response = view_func(request, *args, **kwargs)
> File
> "/var/lib/geonode/lib/python2.7/site-packages/django/utils/decorators.py"
> in bound_func
>   17.                 return func(self, *args2, **kwargs2)
> File
> "/var/lib/geonode/lib/python2.7/site-packages/django/contrib/admin/options.py"
> in changelist_view
>   1007.                 response = self.response_action(request,
> queryset=cl.get_query_set())
> File
> "/var/lib/geonode/lib/python2.7/site-packages/django/contrib/admin/options.py"
> in response_action
>   749.             response = func(self, request, queryset)
> File
> "/var/lib/geonode/lib/python2.7/site-packages/django/contrib/admin/actions.py"
> in delete_selected
>   47.             queryset.delete()
> File
> "/var/lib/geonode/lib/python2.7/site-packages/django/db/models/query.py" in
> delete
>   445.             delete_objects(seen_objs, del_query.db)
> File
> "/var/lib/geonode/lib/python2.7/site-packages/django/db/models/query.py" in
> delete_objects
>   1314.                     signals.pre_delete.send(sender=cls,
> instance=instance)
> File
> "/var/lib/geonode/lib/python2.7/site-packages/django/dispatch/dispatcher.py"
> in send
>   162.             response = receiver(signal=self, sender=sender, **named)
> File "/var/lib/geonode/src/GeoNodePy/geonode/maps/models.py" in
> delete_layer
>   1635.     instance.delete_from_geoserver()
> File "/var/lib/geonode/src/GeoNodePy/geonode/maps/models.py" in
> delete_from_geoserver
>   941.         cascading_delete(Layer.objects.gs_catalog, self.resource)
> File "/var/lib/geonode/src/GeoNodePy/geonode/maps/gs_helpers.py" in
> cascading_delete
>   132.     resource_name = resource.name
>
> Exception Type: AttributeError at /admin/maps/layer/
> Exception Value: 'NoneType' object has no attribute 'name'
>
>

Reply via email to