我在apps
目录中放了一个简单的项目和两个应用程序:
myproject/
| manage.py
|-- myproject/
| | __init__.py
| | settings.py
| | urls.py
| | wsgi.py
|-- apps/
| | __init__.py
| | app1/ # with models.py and views.py
| | app2/ # with models.py and views.py
我已将INSTALLED_APPS
设置更新为包含apps.app1
和apps.app2
。
apps.app1
是唯一具有模型的应用:
class Thing(models.Model):
stuff = models.CharField(max_length=255)
如果我运行./manage.py check
并且它恢复正常。
但是,如果我尝试运行./manage.py makemigrations apps.app1
,我会收到以下错误:
App 'apps.app1' could not be found. Is it in INSTALLED_APPS?
但是apps.app1
显然在设置文件中,这里是设置文件(复制并粘贴):
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'apps.app1',
'apps.app2',
]
我读过的其他内容似乎表明应该可以在子目录中安装Django应用程序。
这实际上不可能吗?或者,如果可能的话,我做错了什么?
答案 0 :(得分:2)
当您运行makemigrations
时,您应该使用应用label
(例如app1
),而不是name
(例如apps.app1
)。
./manage.py makemigrations app1