我将模型拆分为多个文件,并将它们放在一个文件夹中。这是树形结构。注意文件夹的名称。这是资本为M.的"模型"
|-- Models
| |-- __init__.py
| |-- PersonModel.py
| `-- VehicleModel.py
__init__.py
文件的内容为-
from .VehicleModel import *
from .PersonModel import *
我创建了一个模型类。现在,当我运行python manage.py makemigrations MyAppName
时,它显示No changes detected in app 'MyAppName'
当我将文件夹形式"Models"重命名为"Models"时,一切都很顺利。
然而,我对视图也做了同样的处理,即将视图拆分为多个文件并放在文件夹中。树结构如下。
`-- Views
|-- DashboardView.py
|-- __init__.py
|-- __pycache__
| |-- DashboardView.cpython-34.pyc
| |-- __init__.cpython-34.pyc
| `-- VehicleView.cpython-34.pyc
`-- VehicleView.py
这里的文件夹名称是大写V的"视图",一切正常。姜戈没有抱怨。
我不明白为什么makemigrations在放置到名为Models的文件夹中时没有检测到模型类。
Django不知道或不关心您的视图在哪里。你可以把它们放在一个名为"thesharedefinitelynotviews"的文件夹中,只要你从那里导入它们,它仍然可以工作。
型号不同。Django需要能够在启动时找到它们,这样它才能正确地设置关系。为了实现这一点,必须通过导入models
来访问它们。