You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

导入Django models.Model时DJANGO_SETTINGS_MODULE报错如何解决?

问题根因

直接在未初始化Django环境的Python脚本中导入继承了models.Model的类,会触发Django的应用加载校验逻辑,你之前的操作缺少Django环境初始化的关键步骤,所以会反复报错。

标准解决方案

场景1:独立运行的Python脚本调用Django模型

在脚本最开头按如下顺序编写初始化代码,必须保证初始化代码在导入模型之前执行:

import os
import django

# 此处替换为你项目的settings路径,格式为「你的Django项目根目录名.settings」
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "myproject.settings")
# 执行Django环境初始化,完成所有应用、模型的加载
django.setup()

# 初始化完成后再导入模型
from newapp.models import NewApp

你之前遇到的Apps aren't loaded yet报错,就是因为没有执行django.setup(),普通项目无需手动调用settings.configure(),该方法仅用于完全自定义配置的特殊场景。

场景2:PyCharm运行/调试脚本时的配置

  • 打开右上角运行配置下拉框,选择「Edit Configurations」
  • 找到对应脚本的配置项,在「Environment variables」栏添加变量:DJANGO_SETTINGS_MODULE=myproject.settings(替换为你自己的项目settings路径)
  • 将「Working directory」设置为Django项目根目录(即manage.py文件所在的目录)
额外排查点
  • 确认newapp已正确添加到settings.py的INSTALLED_APPS列表中,且包名无拼写错误
  • 不要在models.py文件的全局作用域编写模型查询、实例化相关代码,会在Django初始化阶段提前触发模型加载逻辑导致报错
  • 仅做模型调试可直接执行python manage.py shell进入Django交互环境,无需手动配置初始化逻辑,直接导入模型即可使用

内容的提问来源于stack exchange,提问作者sully_r

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.03 11:24:05