ClassNotFoundError: No class 'Applicator' found in oscar.apps.offer.utils

78 views
Skip to first unread message

Leonardo Otero

unread,
Apr 7, 2014, 3:57:24 PM4/7/14
to django...@googlegroups.com
I'm having an erratic exception which seems to be causing an Internal Server Error.

From time to time I receive the following error:

ClassNotFoundError: No class 'Applicator' found in oscar.apps.offer.utils

Do you know what could be causing this problem with OSCAR? Is it something solved in a newer version?

Stacktrace:

2014-04-06 23:23:54 [4923] [INFO] Using worker: sync
2014-04-06 23:23:54 [4928] [INFO] Booting worker with pid: 4928
2014-04-06 23:23:54 [4929] [INFO] Booting worker with pid: 4929
2014-04-06 23:23:54 [4930] [INFO] Booting worker with pid: 4930
2014-04-06 23:26:35 [4929] [ERROR] Error handling request
Traceback (most recent call last):
  File "/home/ubliadmin/.virtualenvs/env/local/lib/python2.7/site-packages/gunicorn/workers/sync.py", line 131, in handle_request
    respiter = self.wsgi(environ, resp.start_response)
  File "/home/ubliadmin/.virtualenvs/env/local/lib/python2.7/site-packages/Django-1.5.5-py2.7.egg/django/core/handlers/wsgi.py", line 236, in __call__
    self.load_middleware()
  File "/home/ubliadmin/.virtualenvs/env/local/lib/python2.7/site-packages/Django-1.5.5-py2.7.egg/django/core/handlers/base.py", line 51, in load_middleware
    mod = import_module(mw_module)
  File "/home/ubliadmin/.virtualenvs/env/local/lib/python2.7/site-packages/Django-1.5.5-py2.7.egg/django/utils/importlib.py", line 35, in import_module
    __import__(name)
  File "/var/www/ublistore/src/oscar/apps/basket/middleware.py", line 8, in <module>
    Applicator = get_class('offer.utils', 'Applicator')
  File "/var/www/ublistore/src/oscar/core/loading.py", line 18, in get_class
    return get_classes(module_label, [classname])[0]
  File "/var/www/ublistore/src/oscar/core/loading.py", line 42, in get_classes
    imported_module = __import__(module_path, fromlist=classnames)
  File "/var/www/ublistore/src/oscar/apps/offer/utils.py", line 8, in <module>
    ConditionalOffer = get_model('offer', 'ConditionalOffer')
  File "/home/ubliadmin/.virtualenvs/env/local/lib/python2.7/site-packages/Django-1.5.5-py2.7.egg/django/db/models/loading.py", line 230, in get_model
    self._populate()
  File "/home/ubliadmin/.virtualenvs/env/local/lib/python2.7/site-packages/Django-1.5.5-py2.7.egg/django/db/models/loading.py", line 72, in _populate
    self.load_app(app_name, True)
  File "/home/ubliadmin/.virtualenvs/env/local/lib/python2.7/site-packages/Django-1.5.5-py2.7.egg/django/db/models/loading.py", line 96, in load_app
    models = import_module('.models', app_name)
  File "/home/ubliadmin/.virtualenvs/env/local/lib/python2.7/site-packages/Django-1.5.5-py2.7.egg/django/utils/importlib.py", line 35, in import_module
    __import__(name)
  File "/home/ubliadmin/.virtualenvs/env/local/lib/python2.7/site-packages/datacash/models.py", line 8, in <module>
    from .the3rdman import signals
  File "/home/ubliadmin/.virtualenvs/env/local/lib/python2.7/site-packages/datacash/the3rdman/__init__.py", line 2, in <module>
    from .utils import build_data_dict
  File "/home/ubliadmin/.virtualenvs/env/local/lib/python2.7/site-packages/datacash/the3rdman/utils.py", line 3, in <module>
    Order = get_model('order', 'Order')
  File "/home/ubliadmin/.virtualenvs/env/local/lib/python2.7/site-packages/Django-1.5.5-py2.7.egg/django/db/models/loading.py", line 230, in get_model
    self._populate()
  File "/home/ubliadmin/.virtualenvs/env/local/lib/python2.7/site-packages/Django-1.5.5-py2.7.egg/django/db/models/loading.py", line 72, in _populate
    self.load_app(app_name, True)
  File "/home/ubliadmin/.virtualenvs/env/local/lib/python2.7/site-packages/Django-1.5.5-py2.7.egg/django/db/models/loading.py", line 96, in load_app
    models = import_module('.models', app_name)
  File "/home/ubliadmin/.virtualenvs/env/local/lib/python2.7/site-packages/Django-1.5.5-py2.7.egg/django/utils/importlib.py", line 35, in import_module
    __import__(name)
  File "/home/ubliadmin/.virtualenvs/env/local/lib/python2.7/site-packages/debug_toolbar/models.py", line 63, in <module>
    patch_root_urlconf()
  File "/home/ubliadmin/.virtualenvs/env/local/lib/python2.7/site-packages/debug_toolbar/models.py", line 51, in patch_root_urlconf
    reverse('djdt:render_panel')
  File "/home/ubliadmin/.virtualenvs/env/local/lib/python2.7/site-packages/Django-1.5.5-py2.7.egg/django/core/urlresolvers.py", line 467, in reverse
    app_list = resolver.app_dict[ns]
  File "/home/ubliadmin/.virtualenvs/env/local/lib/python2.7/site-packages/Django-1.5.5-py2.7.egg/django/core/urlresolvers.py", line 311, in app_dict
    self._populate()
  File "/home/ubliadmin/.virtualenvs/env/local/lib/python2.7/site-packages/Django-1.5.5-py2.7.egg/django/core/urlresolvers.py", line 263, in _populate
    for pattern in reversed(self.url_patterns):
  File "/home/ubliadmin/.virtualenvs/env/local/lib/python2.7/site-packages/Django-1.5.5-py2.7.egg/django/core/urlresolvers.py", line 347, in url_patterns
    patterns = getattr(self.urlconf_module, "urlpatterns", self.urlconf_module)
  File "/home/ubliadmin/.virtualenvs/env/local/lib/python2.7/site-packages/Django-1.5.5-py2.7.egg/django/core/urlresolvers.py", line 342, in urlconf_module
    self._urlconf_module = import_module(self.urlconf_name)
  File "/home/ubliadmin/.virtualenvs/env/local/lib/python2.7/site-packages/Django-1.5.5-py2.7.egg/django/utils/importlib.py", line 35, in import_module
    __import__(name)
  File "/var/www/ublistore/src/sites/demo/urls.py", line 6, in <module>
    from oscar.app import shop
  File "/var/www/ublistore/src/oscar/app.py", line 12, in <module>
    class Shop(Application):
  File "/var/www/ublistore/src/oscar/app.py", line 17, in Shop
...skipping...
  File "/home/ubliadmin/.virtualenvs/env/local/lib/python2.7/site-packages/debug_toolbar/models.py", line 63, in <module>
    patch_root_urlconf()
  File "/home/ubliadmin/.virtualenvs/env/local/lib/python2.7/site-packages/debug_toolbar/models.py", line 51, in patch_root_urlconf
    reverse('djdt:render_panel')
  File "/home/ubliadmin/.virtualenvs/env/local/lib/python2.7/site-packages/Django-1.5.5-py2.7.egg/django/core/urlresolvers.py", line 467, in reverse
    app_list = resolver.app_dict[ns]
  File "/home/ubliadmin/.virtualenvs/env/local/lib/python2.7/site-packages/Django-1.5.5-py2.7.egg/django/core/urlresolvers.py", line 311, in app_dict
    self._populate()
  File "/home/ubliadmin/.virtualenvs/env/local/lib/python2.7/site-packages/Django-1.5.5-py2.7.egg/django/core/urlresolvers.py", line 263, in _populate
    for pattern in reversed(self.url_patterns):
  File "/home/ubliadmin/.virtualenvs/env/local/lib/python2.7/site-packages/Django-1.5.5-py2.7.egg/django/core/urlresolvers.py", line 347, in url_patterns
    patterns = getattr(self.urlconf_module, "urlpatterns", self.urlconf_module)
  File "/home/ubliadmin/.virtualenvs/env/local/lib/python2.7/site-packages/Django-1.5.5-py2.7.egg/django/core/urlresolvers.py", line 342, in urlconf_module
    self._urlconf_module = import_module(self.urlconf_name)
  File "/home/ubliadmin/.virtualenvs/env/local/lib/python2.7/site-packages/Django-1.5.5-py2.7.egg/django/utils/importlib.py", line 35, in import_module
    __import__(name)
  File "/var/www/ublistore/src/sites/demo/urls.py", line 6, in <module>
    from oscar.app import shop
  File "/var/www/ublistore/src/oscar/app.py", line 12, in <module>
    class Shop(Application):
  File "/var/www/ublistore/src/oscar/app.py", line 17, in Shop
    basket_app = get_class('basket.app', 'application')
  File "/var/www/ublistore/src/oscar/core/loading.py", line 18, in get_class
    return get_classes(module_label, [classname])[0]
  File "/var/www/ublistore/src/oscar/core/loading.py", line 55, in get_classes
    imported_local_module = __import__(local_app, fromlist=classnames)
  File "/var/www/ublistore/src/sites/demo/apps/basket/app.py", line 1, in <module>
    from oscar.apps.basket import app
  File "/var/www/ublistore/src/oscar/apps/basket/app.py", line 4, in <module>
    from oscar.apps.basket import views
  File "/var/www/ublistore/src/oscar/apps/basket/views.py", line 18, in <module>
    Applicator = get_class('offer.utils', 'Applicator')
  File "/var/www/ublistore/src/oscar/core/loading.py", line 18, in get_class
    return get_classes(module_label, [classname])[0]
  File "/var/www/ublistore/src/oscar/core/loading.py", line 43, in get_classes
    return _pluck_classes([imported_module], classnames)
  File "/var/www/ublistore/src/oscar/core/loading.py", line 94, in _pluck_classes
    classname, ", ".join(packages)))
ClassNotFoundError: No class 'Applicator' found in oscar.apps.offer.utils
2014-04-07 12:07:38 [1063] [ERROR] Error handling request
Traceback (most recent call last):
  File "/home/ubliadmin/.virtualenvs/env/local/lib/python2.7/site-packages/gunicorn/workers/sync.py", line 131, in handle_request
    respiter = self.wsgi(environ, resp.start_response)
  File "/home/ubliadmin/.virtualenvs/env/local/lib/python2.7/site-packages/Django-1.5.5-py2.7.egg/django/core/handlers/wsgi.py", line 236, in __call__
    self.load_middleware()
  File "/home/ubliadmin/.virtualenvs/env/local/lib/python2.7/site-packages/Django-1.5.5-py2.7.egg/django/core/handlers/base.py", line 51, in load_middleware
    mod = import_module(mw_module)
  File "/home/ubliadmin/.virtualenvs/env/local/lib/python2.7/site-packages/Django-1.5.5-py2.7.egg/django/utils/importlib.py", line 35, in import_module
    __import__(name)
  File "/var/www/ublistore/src/oscar/apps/basket/middleware.py", line 8, in <module>
    Applicator = get_class('offer.utils', 'Applicator')
  File "/var/www/ublistore/src/oscar/core/loading.py", line 18, in get_class
    return get_classes(module_label, [classname])[0]
  File "/var/www/ublistore/src/oscar/core/loading.py", line 42, in get_classes
    imported_module = __import__(module_path, fromlist=classnames)
  File "/var/www/ublistore/src/oscar/apps/offer/utils.py", line 8, in <module>
    ConditionalOffer = get_model('offer', 'ConditionalOffer')
  File "/home/ubliadmin/.virtualenvs/env/local/lib/python2.7/site-packages/Django-1.5.5-py2.7.egg/django/db/models/loading.py", line 230, in get_model
    self._populate()
  File "/home/ubliadmin/.virtualenvs/env/local/lib/python2.7/site-packages/Django-1.5.5-py2.7.egg/django/db/models/loading.py", line 72, in _populate
    self.load_app(app_name, True)
  File "/home/ubliadmin/.virtualenvs/env/local/lib/python2.7/site-packages/Django-1.5.5-py2.7.egg/django/db/models/loading.py", line 96, in load_app
    models = import_module('.models', app_name)
  File "/home/ubliadmin/.virtualenvs/env/local/lib/python2.7/site-packages/Django-1.5.5-py2.7.egg/django/utils/importlib.py", line 35, in import_module
    __import__(name)
  File "/home/ubliadmin/.virtualenvs/env/local/lib/python2.7/site-packages/datacash/models.py", line 8, in <module>
    from .the3rdman import signals
:

Thanks in advance,
Leo



On Mon, Apr 7, 2014 at 3:50 PM, Łukasz Sitko <cit...@gmail.com> wrote:
Anybody help how can I set up faceting in oscar when I use Whoosh search engine?

--
https://github.com/tangentlabs/django-oscar
http://django-oscar.readthedocs.org/en/latest/
https://twitter.com/django_oscar
---
You received this message because you are subscribed to the Google Groups "django-oscar" group.
To unsubscribe from this group and stop receiving emails from it, send an email to django-oscar...@googlegroups.com.
Visit this group at http://groups.google.com/group/django-oscar.
To view this discussion on the web visit https://groups.google.com/d/msgid/django-oscar/67731b17-0078-4827-8fd3-2974c469321b%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Maik Hoepfel

unread,
Apr 8, 2014, 3:21:16 AM4/8/14
to django...@googlegroups.com
Hi Leo,

looks like you're using the Debug Toolbar (hopefully not in production!)
The URL patching of the version 1.0 of it doesn't play nice with Oscar
and is quick to cause circular imports. Switch to the explicit setup and
you should be alright:
http://django-debug-toolbar.readthedocs.org/en/latest/installation.html#explicit-setup

Cheers,

Maik
> <mailto:django-oscar...@googlegroups.com>.
> <https://groups.google.com/d/msgid/django-oscar/67731b17-0078-4827-8fd3-2974c469321b%40googlegroups.com?utm_medium=email&utm_source=footer>.
> For more options, visit https://groups.google.com/d/optout.
>
>
> --
> https://github.com/tangentlabs/django-oscar
> http://django-oscar.readthedocs.org/en/latest/
> https://twitter.com/django_oscar
> ---
> You received this message because you are subscribed to the Google
> Groups "django-oscar" group.
> To unsubscribe from this group and stop receiving emails from it, send
> an email to django-oscar...@googlegroups.com
> <mailto:django-oscar...@googlegroups.com>.
> Visit this group at http://groups.google.com/group/django-oscar.
> To view this discussion on the web visit
> https://groups.google.com/d/msgid/django-oscar/CAGY3hqu4Fc0Xp8edvNFHZgf6hZkO0dDu%2BKvm_96g45gmsNUx4Q%40mail.gmail.com
> <https://groups.google.com/d/msgid/django-oscar/CAGY3hqu4Fc0Xp8edvNFHZgf6hZkO0dDu%2BKvm_96g45gmsNUx4Q%40mail.gmail.com?utm_medium=email&utm_source=footer>.
Reply all
Reply to author
Forward
0 new messages