Django 1.10 对子目录中的应用程序的迁移支持

标签 django

我将一个简单的项目和两个应用放在一个 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.app1apps.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 应用程序。

这实际上不可能吗?或者,如果可能的话,我做错了什么?

最佳答案

当你运行 makemigrations你应该使用应用 label (例如 app1),而不是 name (例如 apps.app1)。

./manage.py makemigrations app1

关于Django 1.10 对子目录中的应用程序的迁移支持,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40405982/

相关文章:

python - 括号 URL 调度程序 Django?

python - 如何在列表API View 中查询SerializerMethodField?

python - 如何使用 django 检查 postgresql 数据库中是否存在某些内容?

javascript - 下载 bootstrap.min.js 在 Django 模板中不起作用

python - PostgreSQL 和 Django 查询

python - 并发进程中的Django select_for_update函数

python - 在 Django 内联模型管理中,如何用值预填充额外的字段

django - 使用 Google BigQuery 作为 Django 的后端

python - 404 请求没有尾部斜杠到 i18n url

Django Rest Framework - 如何为所有 ModelSerializer 字段创建自定义错误消息?