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
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'
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.
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
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 '))
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.