Python makemigrations未检测到新模型

Python makemigrations未检测到新模型,python,django,django-models,Python,Django,Django Models,Django 1.11。我最近在myapp.models中添加了以下模块: from django.db import models from ordered_model.models import OrderedModel from .songs import Song class Service(models.Model): name = models.CharField(max_len=200, unique=True) date = models.DateField(

Django 1.11。我最近在myapp.models中添加了以下模块:

from django.db import models
from ordered_model.models import OrderedModel

from .songs import Song

class Service(models.Model):
    name = models.CharField(max_len=200, unique=True)
    date = models.DateField(blank=True)
    items = models.ManyToManyField(ServiceItem)

    class Meta:
        ordering = ('-date', 'name')

class ServiceItem(OrderedModel):
    item = models.ForeignKey(Song)
    song_custom_order = models.CharField(max_len=50, blank=True)
    order_with_respect_to = 'service'

    class Meta(OrderedModel.Meta):
        pass
我在另一个模块中有其他模型(在同一目录中)。当我运行
/manage.py makemigrations
时,脚本会在其他模块中找到我的更改,但不会在这个模块中找到。FWIW,这个模块是全新的代码,没有以前的迁移历史


知道为什么这些更改没有被接受吗?

试试,运行makemigrations指定应用程序名称

python manage.py makemigrations <your_app_name>
python manage.py makemigrations

/manage.py makemigrations
这应该能奏效


另外,确保您的应用程序名称包含在settings.py文件中的INSTALLED\u APPS设置中。

尝试运行指定应用程序名称的makemigrations

python manage.py makemigrations <your_app_name>
python manage.py makemigrations

/manage.py makemigrations
这应该能奏效


另外,确保您的应用程序名称包含在settings.py文件中的INSTALLED\u APPS设置中。

将模型目录创建为一个包(init.py应该在那里)并将模型文件存储在那里可能会起到作用。

将模型目录创建为一个包(init.py应该在那里)将模型文件存储在那里可能会起到作用。

必须将模型导入到
模型
包的
文件中。从:

manage.pystartapp命令创建的应用程序结构 包括一个models.py文件。如果你有很多模型,把它们组织起来 单独的文件可能有用

为此,请创建一个模型包。删除models.py并创建一个 myapp/models/目录,其中包含\uuuu init\uuuu.py文件和要 储存你的模型。您必须在文件中导入模型。 例如,如果在模型中有有机.py合成.py 目录:

myapp/models/\uuuuuu init\uuuuuuuu.py

from .organic import Person
from .synthetic import Robot

模型必须导入到
模型
包的
初始化
文件中。从:

manage.pystartapp命令创建的应用程序结构 包括一个models.py文件。如果你有很多模型,把它们组织起来 单独的文件可能有用

为此,请创建一个模型包。删除models.py并创建一个 myapp/models/目录,其中包含\uuuu init\uuuu.py文件和要 储存你的模型。您必须在文件中导入模型。 例如,如果在模型中有有机.py合成.py 目录:

myapp/models/\uuuuuu init\uuuuuuuu.py

from .organic import Person
from .synthetic import Robot

我在添加新模型作为新应用程序的一部分时遇到了这个问题


解决方案是确保新应用程序名称包含在已安装的应用程序中

我在将新模型添加为新应用程序的一部分时遇到此问题


解决方案是确保新的应用程序名称包含在
已安装的应用程序中

检查是否有init.py文件,并检查文件名是否为models。必须将模型导入到
models`包的
init.py文件中。有关更多信息,请参阅。谢谢,@doru。如果你把这变成一个答案,我会接受的。它成功了。我从来没有想过必须在
\uuuuu init\uuuuuuuuuuuuuupy
中导入我的模型。请检查是否有init.py文件,并检查文件名是否为models。这些模型必须导入到
models`包的
\uuuuuuuuuuuuuuuuuuuuuuuuuupy文件中。有关更多信息,请参阅。谢谢,@doru。如果你把这变成一个答案,我会接受的。它成功了。我从来没有想过要在
\uuuu init\uuuuuuuy.py
中导入我的模型。谢谢,但这个答案解决了一个不同的问题,其中所有迁移都不起作用。我的问题在上面的评论中得到了解决。谢谢,但是这个答案解决了一个不同的问题,其中所有迁移都不起作用。我的问题在上面的评论中得到了解决。文档说如果你有很多模型,你可以这样做,但这不是强制性的…文档说如果你有很多模型,你可以这样做,但这不是强制性的。。。