2015-09-29 2 views
2

Я пытаюсь обновить проект с Django 1.4 до 1.8. Я скорректировал определения приложения as the docs say to:Обновление Django от 1.4 до 1.8

WM/apps.py:

from django.apps import AppConfig 

class WMConfig(AppConfig): 
    name="wm" 
    verbose_name="WebManager" 

WM/__ init__.py:

default_app_config = 'wm.apps.WMConfig' 

Вопрос теперь, когда я пытаюсь получить доступ к приложению через браузер я получаю 500 ошибок. Бревна Apache показать:

mod_wsgi (pid=33242): Target WSGI script '/home/admusr/project/WebManager/wsgi.py' cannot be loaded as Python module. 
mod_wsgi (pid=33242): Exception occurred processing WSGI script '/home/admusr/project/WebManager/wsgi.py'. 
Traceback (most recent call last): 
    File "/home/admusr/project/WebManager/wsgi.py", line 24, in <module> 
    application = get_wsgi_application() 
    File "/usr/local/lib/python2.7/dist-packages/django/core/wsgi.py", line 14, in get_wsgi_application 
    django.setup() 
    File "/usr/local/lib/python2.7/dist-packages/django/__init__.py", line 18, in setup 
    apps.populate(settings.INSTALLED_APPS) 
    File "/usr/local/lib/python2.7/dist-packages/django/apps/registry.py", line 85, in populate 
    app_config = AppConfig.create(entry) 
    File "/usr/local/lib/python2.7/dist-packages/django/apps/config.py", line 112, in create 
    mod = import_module(mod_path) 
    File "/usr/lib/python2.7/importlib/__init__.py", line 37, in import_module 
    __import__(name) 
ImportError: No module named wm.apps 

Если изменить WM/__ init__.py к default_app_config = 'apps.WMConfig' тогда он просто говорит ImportError: No module named apps, так что вопрос, когда он пытался загрузить этот модуль. Я не смог найти что-либо на этом с таким общим сообщением об ошибке.

+0

Какова структура вашего проекта и как приложение отображается в настройке INSTALLED_APPS? – Alasdair

+0

'project' - это корневой каталог (содержащий manage.py), тогда' project/WebManager' содержит параметры settings.py, где определен 'INSTALLED_APPS', а' project/WebManager/wm' - это приложение wm. приложение указано в 'INSTALLED_APPS' как' 'WebManager.wm''. – ewok

ответ

2

Попробуйте

default_app_config = 'Webmanager.wm.apps.WMConfig' 

Как и в сторону, the docs рекомендуется использовать путь к приложению конфигурации непосредственно в INSTALLED_APPS, вместо того, чтобы видеть default_app_config в приложения __init__.py

INSTALLED_APPS = (
    ... 
    'Webmanager.wm.apps.WMConfig', 

)

Другой проблемой является ваш атрибут app config name. Это должно быть полный путь , то есть WebManager.wm вместо wm.

class WMConfig(AppConfig): 
    name="WebManager.wm" 
    verbose_name="WebManager" 
+0

Теперь я получаю ту же ошибку, кроме вместо 'No module wm.apps' это просто' No module wm' – ewok

+0

Очень поздний ответ, но я считаю, что другой проблемой является «имя» app config. Это должно быть 'WebManager.wm', а не' wm'. – Alasdair