子文件夹中的 Django 迁移

Django migrations in subfolders

我有以下项目结构:

bm_app_1
 | contents here
bm_app_2
 | contents here
bm_common
 | __init__.py
 | deletable
 |  | __init__.py
 |  | behaviors.py
 |  | models.py
 | timestampable
 |  | __init__.py
 |  | behaviors.py

应用 bm_common 中的文件定义了我想要在迁移文件中使用的托管模型。但是,当我 运行 python managepy makemigrations 时,应用 bm_common 的子文件夹内的文件不会被考虑在内。所有应用都在 INSTALLED_APPS

PREREQ_APPS = [
    required apps here
]
PROJECT_APPS = [
    'bm_common',
    'bm_app_1',
    'bm_app_2'
]
INSTALLED_APPS = PREREQ_APPS + PROJECT_APPS

有没有办法改变 makemigrations 的行为来查看子文件夹?如果没有,进行这种拆分的好建议是什么?我不想将所有行为集中在一个 behaviors.py 中,因为它变得太大并且对我造成循环引用。

当应用注册表填充所有模型时,需要以某种方式导入模型,否则它们不会被注册,Django 也不知道它们。最简单的解决方案是创建一个 bm_common/models.py 文件并在其中导入所有模型:

from .deletable.models import ModelA, ModelB
from .timestampable.models import ModelC
...