Django中的"应用程序尚未加载"和"django.core.exceptions.ImproperlyConfigured"?

jav*_*ved 4 python django django-models

在此输入图像描述

这是我的Django项目的目录结构.当我运行导入模型的python代码时:from scraping.models import LinkVendorStandard从文件"framework_product_processing.py"中抛出此异常:

django.core.exceptions.ImproperlyConfigured:请求设置DEFAULT_INDEX_TABLESPACE,但未配置设置.您必须在访问设置之前定义环境变量DJANGO_SETTINGS_MODULE或调用settings.configure().

当我添加此代码时: import django django.setup()

要初始化django项目设置,我得到以下异常:django.core.exceptions.AppRegistryNotReady:尚未加载应用程序.

关于此行为,我有以下两个问题:

  1. django项目结构中的文件:"framework_product_process.py"与"views.py"处于同一级别,可以访问模型而无需设置Django项目.如果可以从与视图相同的python路径访问此文件那么为什么django.core.exceptions.ImproperlyConfigured
  2. 即使在添加import django;django.setup()代码之后我也会得到django.core.exceptions.AppRegistryNotReady:尚未加载应用程序.

有人可以解释一下吗?

更新:在此输入图像描述 当我将它移动到non_app python目录时,文件"framework_prodcut_processing.py"运行时没有任何错误.non_app不是Django应用程序.

hsp*_*her 7

django.core.exceptions.ImproperlyConfigured

当您运行命令时python manage.py runserver,django django.setup会使用DJANGO_SETTINGS_MODULE环境变量自动为您运行.因此,代码views.py可以访问模型,因为django确保django.setup在导入视图之前调用它.由于您将shell脚本作为简单的python文件运行,因此您必须手动调用django.setup.

django.core.exceptions.AppRegistryNotReady:尚未加载应用

这通常发生在导入完整设置文件之前导入应用程序时(即在INSTALLED_APPS初始化之前).因此,请确保您在设置文件中没有任何代码,该文件从其他应用程序导入代码.

还要确保您没有在应用程序的__init__.py文件中导入模型或类似的应用程序代码.