【发布时间】:2016-09-11 04:30:48
【问题描述】:
我使用过 django 1.7,最近使用 django 1.9 开始了新项目。启动新应用的主要区别在于,新应用是使用 apps.py 文件创建的。我在django docs 上读到,现在你必须使用
INSTALLED_APPS = [
'newapp.apps.NewAppConfig',
...
]
(旧的只是'newapp')
在我的新项目中,我将所有应用程序都放在一个名为“myapps”的新目录中。
但如果我使用
'myapps.newapp.apps.NewAppConfig'
比 django 给出错误ImportError: No module named newapp
但如果我使用旧方式,即
INSTALLED_APPS = [
'myapps.newapp',
...
]
它可以完美无误地工作,但可能无法应用 apps.py 文件中的配置(我不知道它是如何工作的)。
那么,当您将所有新应用程序放在另一个目录(如“myapps”)中且 apps.py 配置文件也可以工作时,将 newapp 放入 django 1.9 的 INSTALLED_APPS 设置中的正确方法是什么?
【问题讨论】:
-
您不必“必须”使用它。旧方法
'myapps.newapp'同样有效。如果您需要在apps.py中运行内容,请仅使用较长的版本@ -
@C14L 是的,我知道您不必这样做,但这是我的问题,如果我将来需要使用 apps.py 并且由于我的目录而无法使用该功能怎么办结构。
-
您的
newapp目录是否包含__init__.py? -
@BurhanKhalid 是的 newapp 确实有 init.py 并且包含在主 url 目录中的 url 也可以正常工作
标签: python django django-1.9