《Python Crash Course 2nd ed》Django项目启动报错BigAutoField不存在
报错原因
这个报错和你新增的urls.py配置无关,是Django版本和项目默认主键配置不匹配导致的:BigAutoField 是Django 3.2版本才正式纳入django.db.models的默认主键类型,如果你本地安装的Django版本低于3.2,同时项目的settings.py中配置了DEFAULT_AUTO_FIELD = 'django.db.models.BigAutoField',启动时加载应用模型就会触发这个报错。你新增urls后Django启动时会加载关联的learning_logs应用的models,因此之前没暴露的问题现在触发了。
解决方案
两个方案二选一即可:
- 方案1:升级Django到兼容版本
推荐安装长期支持的4.2版本,执行命令:pip install --upgrade django==4.2 - 方案2:修改settings.py适配低版本Django
打开项目根目录下的settings.py文件,找到DEFAULT_AUTO_FIELD配置项,修改为:
如果找不到这行配置,直接在settings.py末尾添加上面的代码即可。DEFAULT_AUTO_FIELD = 'django.db.models.AutoField'
修改完成后重新执行python manage.py runserver就能正常启动服务了。
内容的提问来源于stack exchange,提问作者kur001
相关产品推荐
相关产品推荐

