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

Tom*_*sen 9 python django django-settings

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

project
    applications
        __init__.py
        app1
        app2
        app3
    project
        __init__.py
        settings.py 
Run Code Online (Sandbox Code Playgroud)

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

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

    'applications.app1',
    'applications.app2',
    'applications.app3',
)
Run Code Online (Sandbox Code Playgroud)

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

./manage.py makemigrations applications.app1
App 'applications.app1' could not be found. Is it in INSTALLED_APPS?
Run Code Online (Sandbox Code Playgroud)

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

dav*_*ang 6

实际上有一个Django本地解决方案.来自文档:

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


Mar*_*den -1

应用程序文件夹在您的吗PYTHONPATH

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

import sys
sys.path.append(os.path.abspath("applications"))
Run Code Online (Sandbox Code Playgroud)