django.core.exceptions.ImproperlyConfigured: Requested setting INSTALLED_APPS - django

I am getting the error below:
django.core.exceptions.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.
I don't know where to look

Make sure you have not deleted the INSTALLED_APPS list in your settings.py. Something similar to:
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
# add new apps here and don't delete the ones above
]
``

Related

improperly configured app in settings.py of django

Tying to register my djano app in the settings section of my django project. but when i run the server i am getting an error in the terminal.
django.core.exceptions.ImproperlyConfigured: 'site1app.apps' does not contain a class 'Site1appConfig'. Choices are: 'Site1AppConfig'.
I dont know what's going wrong as i just added it to the list of installed apps in settings.py:
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'site1app.apps.Site1appConfig',
]
This looks like a miss on the capitalization for your class
Change:
'site1app.apps.Site1appConfig'
To:
'site1app.apps.Site1AppConfig'

What is the difference between Django syntax

hello guys what the difference between this two syntax
'blog' and 'blog.apps.BlogConfig'
in project this is located in installed app.
I think both are same but there should be difference between this 2 commands because they looks like different
first one is this
INSTALLED_APPS = [
'blog',
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
]
seccond one is :
INSTALLED_APPS = [
'blog.apps.BlogConfig',
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
]
I assume that you have a custom configuration(BlogConfig) for your app.
You have at least two options to register the app with custom config in project settings(INSTALLED_APPS).
(if)You have a variable default_app_config = 'blog.apps.BlogConfig' in blog/__init__.py file, then inserting blog into INSTALLED_APPS will be the same as blog.apps.BlogConfig. If you don't have it in __init__.py, BlogConfig won't be applied in the example below.
INSTALLED_APPS = [
...,
'blog',
...,
]
(if)You have an empty __init__.py in your app. Then to apply the custom config you must include the path to config.
INSTALLED_APPS = [
...,
'blog.apps.BlogConfig',
...,
]
putting only blog in the second example will work without the custom config.

django-environ: how to separate INSTALLED_APPS for dev and prod

I am using djano-environ for my settings
In django development i am planning to install django-extensions app which i need only in development. So what is the recommended way to use django-environ for prod and dev w.r.t INSTALLED_APPS
I have to add it to the INSTALLED_APPS.
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
# third party apps
'django_extensions',
]
Now how to use django-envion's .env file which will pass INSTALLED_APPS
because i will have a different .env files for dev and prod
I have separate dev.py and prod.py since I've config keys which are not applicable in both the environments.
If you've multiple cases like this a good option would be to create a dev.py
dev.py
from base import *
INSTALLED_APPS += ['django_extensions', ]
Else if this is a one off case, you can load additional app list from your env file.
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
] + os.list('ENV_SPECIFIC_APPS')
envfile
.
.
ENV_SPECIFIC_APPS=django_extensions

Environment Variables, error: django.core.exceptions.ImproperlyConfigured: The INSTALLED_APPS setting must be a list or a tuple

I'm setting up the enviroment variables in my venv created with virtualenv.
I created two scripts: postactivate and preactivate, The order of the commands that I follow are: source venv/bin/activate, source venv/bin/postactivate and python manage.py runserver but I have this error when I try to run my command python manage.py runserver : django.core.exceptions.ImproperlyConfigured: The INSTALLED_APPS setting must be a list or a tuple.
Y tried some things: put the entire list in only one line, to exchange between single and double quotes, even, convert to a tuple.
postactivate script
export INSTALLED_APPS="[
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.humanize',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'rest_framework',
'rest_framework.authtoken',
'custom_user',
'corsheaders',
'django_s3_storage',
'django_ses',
'captcha',
'embed_video',
'bootstrap_forms',
'models_simple_trans',
'tables',
'markdown_filter',
'apps.countries',
'apps.companies',
'apps.organizations',
'apps.campaigns',
'apps.auctions',
'apps.users',
'apps.home',
'apps.emails',
'apps.adminpanel',
'apps.payments',
'helpers',
'celery',
'rest_framework_swagger',
'django_extensions',
'social_django',
'mapwidgets',
'rosetta',
'channels',
'django_user_agents',
'django.contrib.sitemaps',
'django_tables2',
]"
I hope you can help me.
Looks like you are setting INSTALLED_APPS in the environment as a string. If you have a line like this in settings file:
INSTALLED_APPS = os.environ.get('INSTALLED_APPS '),
you might try chaning it to
INSTALLED_APPS = json.loads(os.environ.get('INSTALLED_APPS '))

import error No module named 'project\\order'

I'm using oscar and added from fork order app. After added that cant run syncdb or server. It is giving an error import error: No module named 'project\\order'
from oscar import get_core_apps
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'django.contrib.flatpages',
'django.contrib.sites',
'compressor',
] + get_core_apps(['project\order'])
SITE_ID = 1
this is my installed apps. I didnt understand why it doing this.
This get_core_apps(['project\order']) should be get_core_apps(['project.order']).
I changed project to oscar.apps.order and it did work. But why, it is a question for me.