嗯,我正在关注 Django Girls 教程,但使用的是 django 版本 4.2 一切都很好,直到我创建模型时需要 makemigrations。
我将新应用程序“博客”放在settings.py中的INSTALLED_APPS上:
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'blog',
]
另外,我认为没有必要,但在 admin.py 上添加了寄存器:
from django.contrib import admin
from .models import Post
admin.site.register(Post)
添加所有这些内容并安装后,我需要执行 makemigrations 以在 ./blog/migrations 目录中生成 0001_initial.py 文件迁移,但它显示以下消息:
No changes detected
在 makemigrations 命令后包含我的应用程序的名称,但仍然未检测到更改
我在互联网上搜索了这个错误并尝试了不同的迁移变体,但唯一对我有用的是下一个>
./manage.py migrate --run-syncdb
然后它起作用了,我使用默认的 django SGDB sqlite3,数据库表是在此命令之后创建的,运行服务器后我可以正常使用模型。
这样做的问题是当我想编辑模型时,我执行 makemigrations 但它仍然没有检测到更改。前面的命令 --run-syncdb 仅适用于创建数据库,但无法使用新模型字段进行更新。
我可以看出问题出在 Django 4.2 上,因为我在三台不同的计算机上执行了完全相同的步骤,每台计算机都安装了 Ubuntu、Termux 和 Windows。
我还尝试使用 Django 3.2 进行相同的教程,并且在迁移或数据库创建方面没有任何问题。
试试这个
python manage.py makemigrations APPNAME
像这样:
python manage.py makemigrations blog