Django在名为Models的文件夹中未检测到模型类



我将模型拆分为多个文件,并将它们放在一个文件夹中。这是树形结构。注意文件夹的名称。这是资本为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来访问它们。