为了将模型放置在子文件夹中,我尝试使用here中所述的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识别?

最佳答案

请参阅Django故障单#10985: Explain how models can be organised in a directory
可能是您没有将模型导入__init__.py

07-26 07:05
查看更多