按Django教程搭建项目卡在Models模块步骤无法推进如何解决
Django Models模块推进受阻解决方法
按以下顺序排查操作即可走完Models模块剩余流程:
- 第一步先做代码错误定位:进入包含
manage.py的项目根目录,在终端执行python manage.py check,该命令会直接输出你当前models代码里的语法错误、字段参数缺失、类引用错误等问题,同时标注精准的错误行号,优先把命令提示的所有错误修正。 - 重点排查复制教程代码最容易触发的兼容问题:
- 确认所有自定义模型类都正确继承
models.Model父类 - 所有
ForeignKey、OneToOneField、ManyToManyField关联字段都填写了必填的on_delete参数,比如常用写法为models.ForeignKey(关联模型类, on_delete=models.CASCADE),2.0之前版本的Django教程示例普遍漏写这个参数,是复制代码后报错的最高发原因 - 检查代码缩进统一为4个空格,没有混入全角标点、漏写冒号这类基础语法错误
- 确认所有自定义模型类都正确继承
- 如果是执行数据库迁移步骤卡住:
- 打开对应app目录下的
migrations文件夹,删除除__init__.py之外的所有历史迁移文件 - 重新执行
python manage.py makemigrations,待迁移文件生成无报错后,执行python manage.py migrate完成数据库表同步
- 打开对应app目录下的
- 如果是模型无法被识别的问题:打开项目的
settings.py文件,确认你编写模型对应的app已经添加到INSTALLED_APPS配置列表中,未注册的app下的模型不会被Django加载。
操作前先执行
python -m django --version确认你本地安装的Django版本,如果教程发布时间较早、和你本地版本差2个以上大版本,不要直接照搬示例代码,优先匹配你当前安装版本的官方文档调整字段写法。
内容的提问来源于stack exchange,提问作者Ian Schaak
相关产品推荐
相关产品推荐

