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

Posted

技术标签:

【中文标题】1.7 中子文件夹中的应用程序【英文标题】:Applications in subfolder in 1.7 【发布时间】:2015-01-11 18:37:46 【问题描述】:

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

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

【问题讨论】:

【参考方案1】:

实际上有一个 Django-native 解决方案。来自docs:

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

【讨论】:

【参考方案2】:

您的PYTHONPATH 上有应用程序文件夹吗?

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

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

【讨论】:

以上是关于1.7 中子文件夹中的应用程序的主要内容,如果未能解决你的问题,请参考以下文章

获取资源文件夹中子目录的路径

为啥没有正确找到我的 App_Code 文件夹中子文件夹中的类?

列出给定起始目录中子目录中的所有文件

Python中子进程中的列表索引超出范围

为什么在春季启动应用程序的一对多关系中子集合为空?

Django 1.7 中的 Django-migrations 检测模型更改,但不会在迁移时应用它们