I have worked with django 1.7 and recently started new project with django 1.9. The major difference with starting a new app was that new app is created with apps.py file. I read on django docs that now you have to use
INSTALLED_APPS = [
'newapp.apps.NewAppConfig',
...
]
(old was just 'newapp'
)
In my new project i have all my apps in a new directory called 'myapps'.
But if i use
'myapps.newapp.apps.NewAppConfig'
than django gives error ImportError: No module named newapp
But if i use the old way i.e.
INSTALLED_APPS = [
'myapps.newapp',
...
]
Than it works perfectly without error but configs in apps.py file may not be applied ( i don't know how it works ).
So which is the right way to put newapp in INSTALLED_APPS settings for django 1.9 when you got all your new apps in another directory like "myapps" with apps.py config file also working?
If your apps directory is in the myapps
directory, then check the following:
Your
myapps
directory should have an__init__.py
Include
myapps
in the path when you include the app inINSTALLED_APPS
, i.e.'myapps.newapp.apps.NewAppConfig',
Include
myapps
in the app config'sname
attribute:class NewAppConfig(AppConfig): name = 'myapps.newapp'
If your app is inside the "myapps" directory, you still need to include that in the path: "myapps.newapp.apps.NewAppConfig"
.
来源:https://stackoverflow.com/questions/37236047/django-1-9-can-not-find-newapp