python - Django从1.4升级到1.8

标签 python django upgrade

我正在尝试将项目从 Django 1.4 升级到 1.8。我已经调整了应用程序定义 as the docs say to :

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,所以问题是当它尝试加载该模块。我找不到任何关于此问题的通用错误消息。

最佳答案

尝试

default_app_config = 'Webmanager.wm.apps.WMConfig'

顺便说一句,the docs建议您直接在 INSTALLED_APPS 中使用应用配置的路径,而不是在应用的 __init__.py

中查看 default_app_config
INSTALLED_APPS = (
    ... 
    'Webmanager.wm.apps.WMConfig', 

)

另一个问题是您的应用程序配置的 name属性。这应该是完整路径,即WebManager.wm而不是wm

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

关于python - Django从1.4升级到1.8,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32850792/

相关文章:

python - 计算合并排序中的反转次数

reactjs - 将 React 17 更新为 React 18 - Typescript - ReactNode 类型的子代不再处理 `void` 的内联条件渲染

jquery - 将 jQuery UI 1.7.2 升级到 1.8.7 是否会带来性能提升?

python - 很多 try/except 语句

django自定义标签内联或 block

python - 使用 django 的 page_cache 装饰器时如何清除整个缓存

android - 如何将 android 项目从 API 18 升级到 21

python - 获取png文件名称的第一个单词和字符

python - 将列表项与上一个列表项合并

python - 在 Scrapy 中将列表作为参数传递