我有一个包含多个应用程序和许多数据模型的项目。我使用的是Django 1.7和Python 2.7。
我已将模型组织成应用级模块。
- common/
-- models/
--- __init__.py
--- these_models.py
--- those_models.py
我在此结构中添加了一个新文件,而Django的makemigration
命令未检测到更改。
如果我将新模型放在现有的模型文件中,那么迁移文件就会完美地创建,所有东西都会迁移并运行得很好。一旦我把它们放到一个新文件中,Django就找不到它们了。它们不在新应用中 - 它是现有的app/models/
模块,只是一个新文件。我不会在import *
或其他任何内容中__init__.py
(ewwww)。
在Django 1.4中,我不得不使用Meta
' app_label
但不再这样做了。
有什么想法?我是否需要手动制作迁移文件(我没有问题)?
答案 0 :(得分:5)
Django现在支持子文件夹中的模型,无需指定Meta class
和app_label
,但它仍然是python,并且不会神奇地加载models
文件夹中的所有模块。
您仍然需要将模型导入app/models/__init__.py
。