Django跨App模型引用问题求助:无法找到Quiz模型
Django跨App模型引用找不到的解决方案
常见问题排查与修复步骤
确认App已注册到项目配置
打开项目根目录下的settings.py,检查INSTALLED_APPS列表,确保quiz和questions两个App都已添加:INSTALLED_APPS = [ # 系统默认App 'django.contrib.admin', 'django.contrib.auth', # ...其他默认项 'quiz', 'questions', ]使用正确的模型引用方式
在questions/models.py中引用Quiz模型,有两种可靠写法:- 直接导入模型:
from quiz.models import Quiz class Question(models.Model): quiz = models.ForeignKey(Quiz, on_delete=models.CASCADE) # 其他字段定义 - 字符串式引用(推荐用于避免循环引用场景):
from django.db import models class Question(models.Model): quiz = models.ForeignKey('quiz.Quiz', on_delete=models.CASCADE) # 其他字段定义
- 直接导入模型:
检查App目录结构合法性
确认quizApp目录下存在models.py文件,且文件名拼写完全正确(Django对文件名大小写敏感);同时每个App目录下必须有__init__.py文件(空文件即可,用于标记为Python包)。刷新迁移缓存
执行以下命令清理旧迁移缓存并重新生成:python manage.py makemigrations --empty questions python manage.py makemigrations python manage.py migrate验证Python运行环境路径
虽然你已经调整过解释器路径,可再通过命令行确认当前环境的Python路径是否指向项目依赖的虚拟环境:which python # Linux/macOS where python # Windows
内容的提问来源于stack exchange,提问作者lorem ipsum
相关产品推荐
相关产品推荐

