Skip to content

Guardian throws ImproperlyConfigured if installed but not used #1712

Closed
@haggholm

Description

@haggholm

I have installed django-guardian, but I’m not currently using it, so (of course) I don’t have config settings for it. Normally, I guess it would be imported on demand based on INSTALLED_APPS, but it seems that REST Framework automatically imports it from its compat module.

The workaround is equally obvious and trivial (uninstall the unused and offending package), and no problem in a virtualenv, but I’m not sure how this might affect others (do some people not use virtualenvs? I’m guessing some might).

Traceback (most recent call last):
  File "/home/petter/.virtualenvs/condite/local/lib/python2.7/site-packages/django/core/handlers/base.py", line 99, in get_response
    resolver_match = resolver.resolve(request.path_info)
  File "/home/petter/.virtualenvs/condite/local/lib/python2.7/site-packages/django/core/urlresolvers.py", line 337, in resolve
    for pattern in self.url_patterns:
  File "/home/petter/.virtualenvs/condite/local/lib/python2.7/site-packages/django/core/urlresolvers.py", line 365, in url_patterns
    patterns = getattr(self.urlconf_module, "urlpatterns", self.urlconf_module)
  File "/home/petter/.virtualenvs/condite/local/lib/python2.7/site-packages/django/core/urlresolvers.py", line 360, in urlconf_module
    self._urlconf_module = import_module(self.urlconf_name)
  File "/home/petter/.virtualenvs/condite/local/lib/python2.7/site-packages/django/utils/importlib.py", line 40, in import_module
    __import__(name)
  File "/home/petter/projects/condite/condite/urls.py", line 7, in <module>
    import condite.rest.reportviews
  File "/home/petter/projects/condite/condite/rest/reportviews.py", line 3, in <module>
    from rest_framework.decorators import api_view
  File "/home/petter/.virtualenvs/condite/local/lib/python2.7/site-packages/rest_framework/decorators.py", line 10, in <module>
    from rest_framework.compat import six
  File "/home/petter/.virtualenvs/condite/local/lib/python2.7/site-packages/rest_framework/compat.py", line 54, in <module>
    import guardian.shortcuts  # Fixes #1624
  File "/home/petter/.virtualenvs/condite/local/lib/python2.7/site-packages/guardian/shortcuts.py", line 16, in <module>
    from guardian.core import ObjectPermissionChecker
  File "/home/petter/.virtualenvs/condite/local/lib/python2.7/site-packages/guardian/core.py", line 8, in <module>
    from guardian.utils import get_identity
  File "/home/petter/.virtualenvs/condite/local/lib/python2.7/site-packages/guardian/utils.py", line 24, in <module>
    from guardian.conf import settings as guardian_settings
  File "/home/petter/.virtualenvs/condite/local/lib/python2.7/site-packages/guardian/conf/settings.py", line 11, in <module>
    raise ImproperlyConfigured("In order to use django-guardian's "
ImproperlyConfigured: In order to use django-guardian's ObjectPermissionBackend authorization backend you have to configure ANONYMOUS_USER_ID at your settings module

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions