AWS Ubuntu部署Django3.0.11项目遇JSONField导入错误求解决
问题原因
你碰到的ImportError: cannot import name 'JSONField'是Django版本差异导致的导入路径问题!在你使用的Django 3.0.11版本中,JSONField还没有被放到django.db.models的顶层模块里,它当时属于django.db.models.fields.json子模块。而从Django 3.1开始,JSONField才被移到django.db.models顶层,支持直接导入。
解决方法
只需要修改peeldb/models.py文件里的导入语句就能解决:
- 拆分原来的导入行,将
JSONField单独从正确路径导入:from django.db.models import Q, Count, F from django.db.models.fields.json import JSONField - 保存文件后重新运行
python3 manage.py runserver,这个错误应该就会消失了。
如果之后你计划把Django版本升级到3.1或更高版本,那时候就可以改回原来的导入方式:from django.db.models import Q, Count, F, JSONField,不需要再单独导入。
内容的提问来源于stack exchange,提问作者Django
相关产品推荐
相关产品推荐

