为了将我的模型放在子文件夹中,我尝试使用此处描述的 app_label Meta 字段。
我的目录结构如下所示:
- 项目
- 应用
- 富
- 楷模
- __init__.py
- bar_model.py
- 楷模
- 富
- 应用
在 bar_model.py 我这样定义我的模型:
from django.db import models
class SomeModel(models.Model):
field = models.TextField()
class Meta:
app_label = "foo"
我可以像这样成功导入模型:
from apps.foo.models.bar_model import SomeModel
但是,运行:
./manage.py syncdb
不为模型创建表。但是,在详细模式下,我确实看到应用程序“foo”被正确识别(它位于 settings.py 的 INSTALLED_APPS 中)。将模型移动到 foo 下的 models.py 确实有效。
是否有一些特定的约定没有记录在 app_label 或整个机制中以防止该模型结构被 syncdb 识别?