Skip to main content
 首页 » 编程设计

python之Django 1.7 没有找到带有 makemigrations 的新模型

2025年05月04日29pengyingh

我有一个包含多个应用程序和许多数据模型的项目。我正在使用 Django 1.7 和 Python 2.7。

我已将模型组织成应用级模块。

- common/ 
  -- models/ 
    --- __init__.py 
    --- these_models.py 
    --- those_models.py 

我已在此结构中添加了一个新文件,但 Django 的 makemigration 命令未检测到更改。

如果我将新模型放入现有模型文件中,则可以完美地创建迁移文件,一切都可以很好地迁移和运行。一旦我将它们放入新文件中,Django 就找不到它们。它们不在新应用程序中 - 它是现有的 app/models/ 模块,只是一个新文件。我不在 __init__.py 或任何东西中 import * (ewwww)。

在 Django 1.4 中,我必须使用 Meta 的 app_label 但不再这样做了。

有什么想法吗?我是否需要手动制作迁移文件(我这样做没问题)?

请您参考如下方法:

Django 现在确实支持子文件夹中的模型而无需指定 Meta class 和 app_label 但它仍然是 python 并且不会神奇地加载 中的所有模块models 文件夹。

您仍然需要将您的模型导入您的 app/models/__init__.py。