ViewDoesNotExist: пробовал войти в модуль django.contrib.auth.views. Ошибка была: у объекта 'module' нет атрибута '__file__' - PullRequest
0 голосов
/ 29 августа 2009

Я развернул свое приложение django, используя Apache и mod_wsgi. Все настройки загружаются нормально, но когда я перенаправляю пользователя на страницу входа, я получаю следующую ошибку:

  File "/opt/ActivePython-2.6/lib/python2.6/site-packages/django/core/handlers/base.py", line 83, in get_response
    request.path_info)

  File "/opt/ActivePython-2.6/lib/python2.6/site-packages/django/core/urlresolvers.py", line 186, in resolve
    sub_match = pattern.resolve(new_path)

  File "/opt/ActivePython-2.6/lib/python2.6/site-packages/django/core/urlresolvers.py", line 125, in resolve
    return self.callback, args, kwargs

  File "/opt/ActivePython-2.6/lib/python2.6/site-packages/django/core/urlresolvers.py", line 137, in _get_callback
    raise ViewDoesNotExist, "Tried %s in module %s. Error was: %s" % (func_name, mod_name, str(e))

ViewDoesNotExist: Tried login in module django.contrib.auth.views. Error was: 'module' object has no attribute '__file__'

При перенаправлении входа в систему или без нее я получаю эту ошибку при попытке загрузить сайт / admin.

  File "/opt/ActivePython-2.6/lib/python2.6/site-packages/django/core/handlers/base.py", line 92, in get_response
    response = callback(request, *callback_args, **callback_kwargs)

  File "/opt/ActivePython-2.6/lib/python2.6/site-packages/django/contrib/admin/sites.py", line 164, in wrapper
    return self.admin_view(view)(*args, **kwargs)

  File "/opt/ActivePython-2.6/lib/python2.6/site-packages/django/contrib/admin/sites.py", line 155, in inner
    return self.login(request)

  File "/opt/ActivePython-2.6/lib/python2.6/site-packages/django/views/decorators/cache.py", line 44, in _wrapped_view_func
    response = view_func(request, *args, **kwargs)

  File "/opt/ActivePython-2.6/lib/python2.6/site-packages/django/contrib/admin/sites.py", line 253, in login
    return self.display_login_form(request, message)

  File "/opt/ActivePython-2.6/lib/python2.6/site-packages/django/contrib/admin/sites.py", line 349, in display_login_form
    'title': _('Log in'),

  File "/opt/ActivePython-2.6/lib/python2.6/site-packages/django/utils/translation/__init__.py", line 62, in ugettext
    return real_ugettext(message)

  File "/opt/ActivePython-2.6/lib/python2.6/site-packages/django/utils/translation/trans_real.py", line 286, in ugettext
    return do_translate(message, 'ugettext')

  File "/opt/ActivePython-2.6/lib/python2.6/site-packages/django/utils/translation/trans_real.py", line 276, in do_translate
    _default = translation(settings.LANGUAGE_CODE)

  File "/opt/ActivePython-2.6/lib/python2.6/site-packages/django/utils/translation/trans_real.py", line 194, in translation
    default_translation = _fetch(settings.LANGUAGE_CODE)

  File "/opt/ActivePython-2.6/lib/python2.6/site-packages/django/utils/translation/trans_real.py", line 181, in _fetch
    apppath = os.path.join(os.path.dirname(app.__file__), 'locale')

AttributeError: 'module' object has no attribute '__file__'

У меня есть другой сайт с поддержкой django на этом же сервере, который отлично работает даже на сайте администратора. Я озадачен тем, почему это поведение появилось на этом сайте, но не на другом.

Любая помощь будет принята с благодарностью!

Ответы [ 2 ]

6 голосов
/ 26 февраля 2010

Это немного старый пост, но я нашел его, чтобы кто-то мог.

Эта ошибка urlresolver в django возникает, когда возникает проблема компиляции вашего представления (или чего-то импортированного вашим представлением). К сожалению, трассировка стека кажется неполной; то, что появляется в браузере, не дает абсолютно никаких указаний на то, в чем действительно заключается проблема.

Вот как я исправил свою проблему:

  1. Перейдите в каталог верхнего уровня для вашего приложения django (тот, где есть settings.py и manage.py)
  2. пробег: python manage.py shell
  3. , который переведет вас в интерпретатор python. Оттуда сделайте: import appname.viewWithProblems
  4. , который должен выдавать исключение, которое включает в себя трассировку стека, вам нужно найти проблему.

Надеюсь, у кого-то еще нет той ночи, что была у меня вчера вечером!

0 голосов
/ 29 августа 2009

Находится ли ваше приложение в архиве, таком как файл .zip или .egg? Если так, то загруженные из него модули не будут иметь __file__ установлен.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...