更改目录结构后 Django 迁移未检测到任何更改

Django migrations no changes detected after changing directory structure

我使用此目录结构创建了一个 Django 项目:

bi3online
    __init__.py
    migrations
        __init__.py
    static
    templates
    media
    manage.py
    models.py
    urls.py
    views.py
    wsgi.py
    ...

当我 运行 python manage.py makemigrationspython manage.py migrate 时,它只为 auth 应用程序创建迁移,然后当我再次尝试时,它说没有检测到任何变化。迁移似乎只适用于应用程序,但我不确定。

models.py

from django.db import models


class Book(models.Model):
    id = models.AutoField(primary_key=True)
    title = models.CharField(null=False, blank=False, max_length=64)

只是总结评论并引导您找到解决方案:

Django 与应用程序一起工作。该应用程序是一个包含 models.pyapps.pyviews.py 模块(可选其他)的文件夹。

假设您的应用名为 books。为了让 Django 将该文件夹识别为一个应用程序,您需要将您的应用程序添加到 settings.py:

INSTALLED_APPS = [
    ... ,
    'books'
]

并且您需要 books 文件夹中的 apps.py 模块才能拥有此文件:

from django.apps import AppConfig


class BooksConfig(AppConfig):
     name = 'books'

并且您应该具有以下项目结构:

bi3online
    books
        migrations
            __init__.py
        __init__.py
        models.py
        views.py
    bi3online
        __init__.py
        manage.py
        urls.py
        wsgi.py
    static
    templates
    media