在1.7中的子文件夹中的应用程序

时间:2014-11-14 11:20:09

标签: python django django-settings

我有一个像这样的项目文件夹结构:

project
    applications
        __init__.py
        app1
        app2
        app3
    project
        __init__.py
        settings.py 

在我的settings.py中我试图导入这样的应用程序:

INSTALLED_APPS = (
    'django.contrib.admin',
    ...

    'applications.app1',
    'applications.app2',
    'applications.app3',
)

但是,如果我尝试迁移其中一个应用,我会收到此错误:

./manage.py makemigrations applications.app1
App 'applications.app1' could not be found. Is it in INSTALLED_APPS?

可能有什么不对?这种设置过去常用于django 1.6

2 个答案:

答案 0 :(得分:6)

实际上有一个Django原生解决方案。来自docs

  

许多命令都会列出“应用名称”。“应用名称”是包含模型的包的基本名称。例如,如果您的INSTALLED_APPS包含字符串'mysite.blog',则应用名称为blog。

答案 1 :(得分:-1)

应用程序文件夹是PYTHONPATH吗?

您可以将其添加到设置文件中,方法是将其放在BASE_DIR

下面
import sys
sys.path.append(os.path.abspath("applications"))