不正确的配置:请求的设置已安装_Apps,但未配置设置



我正在尝试使MongoDB和Django按照我想要的方式相互互动。那是我尝试从REST_FRAMEWORK_MONGOENENGINE导入Viewset的错误。

整个错误看起来像这样:

ImproperlyConfigured: Requested setting INSTALLED_APPS, but settings are not configured. You must either define the environment variable DJANGO_SETTINGS_MODULE or call settings.configure() before accessing settings.

它找不到settings.py还是什么?如果是这样,我不知道为什么!也就是说,为什么这个问题不会出现其他模块?

这是我的INSTALLED APPS

INSTALLED_APPS = [
    'rest_framework',
    'rest_framework_mongoengine',
    'mongoengine.django.mongo_auth',
    'rest_framework.authtoken',
    'corsheaders',
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'django_extensions',
    'core',
    'core.essences.user',
    'core.essences.user.authentication',
    'core.essences.test_result',
]

最常见的原因是您只是在运行python而不是使用python manage.py shell,这意味着您需要手动设置DJANGO_SETTINGS_MODULE环境变量,因此Django知道在哪里可以找到您的设置(manage.py shell为您自动这样做(。

在设置设置过程中,您有可能试图导入设置的东西(但不太常见(。要确定是否是这种情况,请查看您的设置文件,以获取可能需要访问设置的任何导入或功能调用(包括设置文件导入的内容中的代码(。

对于仍然很少解决此问题的任何人,请确保setDefault django_settings_module移至脚本文件的顶部。

import os
import django
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'my_crazy_service.settings')
django.setup()
from channels.auth import AuthMiddlewareStack
from channels.routing import ProtocolTypeRouter, URLRouter
from django.core.asgi import get_asgi_application

无视弯曲的标记

在您的xx.py:

中尝试一下
from yourProjectName.wsgi import *

运行python manage.py shell而不是运行python以到达项目中的环境外壳。Python不简单地识别django已安装的应用程序。

如果您正在使用Windows Run

set DJANGO_SETTINGS_MODULE= <yourProjectName>.settings

(或(导航到包含终端中的设置文件的文件夹并运行

set  DJANGO_SETTINGS_MODULE=settings

在交互环境中尝试python manage.py shell而不是python

我在运行以下命令时在pycharm的python控制台中看到了此例外,

from app_name.models import model_name

由上面存在的解决方案,在此命令之前,我使用以下命令,并且解决了问题

from project_name.wsgi import *

最新更新