Django migrations in Django

5rgfhyps  于 2023-10-21  发布在  Go
关注(0)|答案(2)|浏览(110)

我有以下项目结构:

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

app 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的行为,以便也查看makemigrations?如果没有,那么什么是一个很好的建议来进行这种分割?我不想把所有的行为都放在一个behaviors.py中,因为它太大了,会导致循环引用。

jaxagkaj

jaxagkaj1#

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

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

wlzqhblo2#

你只需要在init.py模块中导入它们,它就可以工作了!

相关问题