我有一个包含多个应用程序和许多数据模型的项目。我正在使用 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。
