Django使用cities_light库遇AppRegistryNotReady错误求助
问题解决:无需重写模型,修正导入路径即可
错误的核心原因是你错误地从cities_light.admin导入了City模型,admin模块的加载时机晚于模型初始化阶段,导致在Django加载模型时触发AppRegistryNotReady异常。
正确的模型代码
把City的导入路径改成从cities_light.models导入,而不是admin:
from cities_light.models import City from django.db import models class Home(models.Model): location = models.ForeignKey(City, on_delete=models.CASCADE)
为什么之前视图能正常运行?
视图是在Django应用完全初始化之后才会被调用的,此时admin模块已经加载完成,所以从admin导入City不会触发错误;但模型文件在应用启动、migrations执行阶段就会被加载,这时候admin模块还没准备好,直接导入就会报错。
后续操作
- 修正导入后,重新执行迁移命令:
python manage.py makemigrations python manage.py migrate
- 重启Django服务即可正常运行。
内容的提问来源于stack exchange,提问作者Martin Dimov
相关产品推荐
相关产品推荐

