Django执行makemigrations提示No changes detected问题排查求助
问题排查及解决方案
1. 检查应用注册配置
你当前INSTALLED_APPS中仅注册了mysite应用,未注册polls应用:
- 如果你将
Customer模型所在的models.py放在polls应用目录下,请在INSTALLED_APPS列表中追加'polls'项,保存配置后重新执行python manage.py makemigrations polls即可检测到模型变更。 - 如果你将
models.py放在与settings.py同目录的内层mysite文件夹下,请确认models.py直接存放于该目录,没有嵌套到其他子文件夹中。
2. 检查应用目录的包结构
根据你给出的目录结构,polls应用下的__init__.py被放在了other files子目录中,这会导致Django无法将polls识别为合法Python包,进而不会读取包内的模型文件。请将__init__.py移动到polls目录的根层级下。
3. 验证模型文件加载状态
在你编写的models.py第一行加入打印代码print("models loaded"),随后执行python manage.py shell,如果控制台没有输出models loaded,即可确认Django未加载该文件,回头核对上述两项配置即可。
4. 兜底强制生成迁移
如果确认上述配置都正确仍无法检测变更,可以先删除对应应用migrations目录下除了__init__.py之外的所有文件,再执行python manage.py makemigrations <你的应用名>强制生成初始迁移。
内容的提问来源于stack exchange,提问作者manuersuper
相关产品推荐
相关产品推荐

