I have a custom Category model extends the CategoryBase
in django-categories.
When I put it into the haystack index and restart the server, on the first run it complains cannot import name CategoryBase
which is CategoryBase
cannot be imported from categories.base
but if I refresh the page again the site runs fine and search result returns correct information. This seems like because of the order of the imports.
I looked at the stacktrace and found out the error originating from admin.autodiscover
inside urls.py the imports looks like this in urls.py
from django.conf.urls import patterns, include, url
from django.contrib import admin
admin.autodiscover()
from django.conf import settings
from django.contrib.staticfiles.urls import staticfiles_urlpatterns
from django.views.generic import TemplateView
from django.contrib.sitemaps import GenericSitemap
from galleries.models import Gallery
from events.models import Event
from django.contrib.auth.views import login, logout
from dajaxice.core import dajaxice_autodiscover, dajaxice_config
from core.models import StaticPageSitemap
from articles.models import ArticleSitemap, IssueSitemap
dajaxice_autodiscover()
I have tried moving the autodiscover to after all the imports as below:
from django.conf.urls import patterns, include, url
from django.contrib import admin
from django.conf import settings
from django.contrib.staticfiles.urls import staticfiles_urlpatterns
from django.views.generic import TemplateView
from django.contrib.sitemaps import GenericSitemap
from galleries.models import Gallery
from events.models import Event
from django.contrib.auth.views import login, logout
from dajaxice.core import dajaxice_autodiscover, dajaxice_config
from core.models import StaticPageSitemap
from articles.models import ArticleSitemap, IssueSitemap
admin.autodiscover()
dajaxice_autodiscover()
While the error has gone away on the first run but the search does not return any result on categories.
Here is the stacktrace:
Django Version: 1.5
Python Version: 2.7.3
Installed Applications:
['django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.comments',
'django.contrib.sites',
'django.contrib.markup',
'django.contrib.messages',
'django.contrib.staticfiles',
'django.contrib.sitemaps',
'django.contrib.sessions',
'django.contrib.admin',
'djcelery',
'filebrowser',
'compressor',
'south',
'taggit',
'categories',
'categories.editor',
'core',
'articles',
'newsletters',
'galleries',
'events',
'haystack',
'dajaxice',
'zencode',
'videos',
'directory',
'dps_payment',
'home',
'taggit_autosuggest',
'captcha',
'search',
'media_board']
Installed Middleware:
('django.middleware.common.CommonMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware')
Traceback:
File "/srv/www/weddings/local/lib/python2.7/site-packages/django/core/handlers/base.py" in get_response
92. response = middleware_method(request)
File "/srv/www/weddings/local/lib/python2.7/site-packages/django/middleware/common.py" in process_request
69. if (not urlresolvers.is_valid_path(request.path_info, urlconf) and
File "/srv/www/weddings/local/lib/python2.7/site-packages/django/core/urlresolvers.py" in is_valid_path
551. resolve(path, urlconf)
File "/srv/www/weddings/local/lib/python2.7/site-packages/django/core/urlresolvers.py" in resolve
440. return get_resolver(urlconf).resolve(path)
File "/srv/www/weddings/local/lib/python2.7/site-packages/django/core/urlresolvers.py" in resolve
319. for pattern in self.url_patterns:
File "/srv/www/weddings/local/lib/python2.7/site-packages/django/core/urlresolvers.py" in url_patterns
347. patterns = getattr(self.urlconf_module, "urlpatterns", self.urlconf_module)
File "/srv/www/weddings/local/lib/python2.7/site-packages/django/core/urlresolvers.py" in urlconf_module
342. self._urlconf_module = import_module(self.urlconf_name)
File "/srv/www/weddings/local/lib/python2.7/site-packages/django/utils/importlib.py" in import_module
35. __import__(name)
File "/srv/www/weddings/weddings_advanced/weddings/urls.py" in <module>
3. admin.autodiscover()
File "/srv/www/weddings/local/lib/python2.7/site-packages/django/contrib/admin/__init__.py" in autodiscover
29. import_module('%s.admin' % app)
File "/srv/www/weddings/local/lib/python2.7/site-packages/django/utils/importlib.py" in import_module
35. __import__(name)
File "/srv/www/weddings/local/lib/python2.7/site-packages/django/contrib/auth/admin.py" in <module>
172. admin.site.register(Group, GroupAdmin)
File "/srv/www/weddings/local/lib/python2.7/site-packages/django/contrib/admin/sites.py" in register
98. validate(admin_class, model)
File "/srv/www/weddings/local/lib/python2.7/site-packages/django/contrib/admin/validation.py" in validate
22. models.get_apps()
File "/srv/www/weddings/local/lib/python2.7/site-packages/django/db/models/loading.py" in get_apps
134. self._populate()
File "/srv/www/weddings/local/lib/python2.7/site-packages/django/db/models/loading.py" in _populate
75. self.load_app(app_name)
File "/srv/www/weddings/local/lib/python2.7/site-packages/django/db/models/loading.py" in load_app
96. models = import_module('.models', app_name)
File "/srv/www/weddings/local/lib/python2.7/site-packages/django/utils/importlib.py" in import_module
35. __import__(name)
File "/srv/www/weddings/weddings_advanced/videos/models.py" in <module>
9. from categories.models import Category
File "/srv/www/weddings/local/lib/python2.7/site-packages/categories/models.py" in <module>
13. from .base import CategoryBase
File "/srv/www/weddings/local/lib/python2.7/site-packages/categories/base.py" in <module>
32. class CategoryBase(MPTTModel):
File "/srv/www/weddings/local/lib/python2.7/site-packages/categories/base.py" in CategoryBase
41. verbose_name=_('parent'))
File "/srv/www/weddings/local/lib/python2.7/site-packages/django/utils/translation/__init__.py" in ugettext
71. return _trans.ugettext(message)
File "/srv/www/weddings/local/lib/python2.7/site-packages/django/utils/translation/trans_real.py" in ugettext
276. return do_translate(message, 'ugettext')
File "/srv/www/weddings/local/lib/python2.7/site-packages/django/utils/translation/trans_real.py" in do_translate
258. _default = translation(settings.LANGUAGE_CODE)
File "/srv/www/weddings/local/lib/python2.7/site-packages/django/utils/translation/trans_real.py" in translation
172. default_translation = _fetch(settings.LANGUAGE_CODE)
File "/srv/www/weddings/local/lib/python2.7/site-packages/django/utils/translation/trans_real.py" in _fetch
154. app = import_module(appname)
File "/srv/www/weddings/local/lib/python2.7/site-packages/django/utils/importlib.py" in import_module
35. __import__(name)
File "/srv/www/weddings/local/lib/python2.7/site-packages/haystack/__init__.py" in <module>
154. handle_registrations()
File "/srv/www/weddings/local/lib/python2.7/site-packages/haystack/__init__.py" in handle_registrations
151. search_sites_conf = importlib.import_module(settings.HAYSTACK_SITECONF)
File "/srv/www/weddings/local/lib/python2.7/site-packages/django/utils/importlib.py" in import_module
35. __import__(name)
File "/srv/www/weddings/weddings_advanced/search/search_sites.py" in <module>
8. from directory.models import Listing, Category as DirectoryCategory
File "/srv/www/weddings/weddings_advanced/directory/models.py" in <module>
21. from categories.base import CategoryBase
Exception Type: ImportError at /directory/listing/new-listing-gift
Exception Value: cannot import name CategoryBase