Folder structure:
settings (folder):
| __init__.py
| base.py
| local.py
| production.py
| test.py
| # coding=utf-8 | |
| """Common settings and globals.""" | |
| from os.path import abspath, basename, dirname, join, normpath | |
| from os import environ | |
| from sys import path | |
| from oscar import get_core_apps | |
| from oscar import OSCAR_MAIN_TEMPLATE_DIR | |
| from oscar.defaults import * | |
| ########## PATH CONFIGURATION | |
| # Absolute filesystem path to the Django project directory: | |
| DJANGO_ROOT = dirname(dirname(abspath(__file__))) | |
| # Absolute filesystem path to the top-level project folder: | |
| SITE_ROOT = dirname(DJANGO_ROOT) | |
| # Site name: | |
| SITE_NAME = basename(DJANGO_ROOT) | |
| # Add our project to our pythonpath, this way we don't need to type our project | |
| # name in our dotted import paths: | |
| path.append(DJANGO_ROOT) | |
| ########## END PATH CONFIGURATION | |
| ########## DEBUG CONFIGURATION | |
| # See: https://docs.djangoproject.com/en/dev/ref/settings/#debug | |
| DEBUG = False | |
| # See: https://docs.djangoproject.com/en/dev/ref/settings/#template-debug | |
| TEMPLATE_DEBUG = DEBUG | |
| ########## END DEBUG CONFIGURATION | |
| ########## MANAGER CONFIGURATION | |
| # See: https://docs.djangoproject.com/en/dev/ref/settings/#admins | |
| ADMINS = ( | |
| ('Luis Diego Garcia', 'redacted') | |
| ) | |
| # See: https://docs.djangoproject.com/en/dev/ref/settings/#managers | |
| MANAGERS = ADMINS | |
| ########## END MANAGER CONFIGURATION | |
| ########## DATABASE CONFIGURATION | |
| # See: https://docs.djangoproject.com/en/dev/ref/settings/#databases | |
| DATABASES = { | |
| 'default': { | |
| 'ENGINE': 'django.db.backends.', | |
| 'NAME': '', | |
| 'USER': '', | |
| 'PASSWORD': '', | |
| 'HOST': '', | |
| 'PORT': '', | |
| } | |
| } | |
| ########## END DATABASE CONFIGURATION | |
| ########## GENERAL CONFIGURATION | |
| # See: https://docs.djangoproject.com/en/dev/ref/settings/#time-zone | |
| TIME_ZONE = 'America/Los_Angeles' | |
| # See: https://docs.djangoproject.com/en/dev/ref/settings/#language-code | |
| LANGUAGE_CODE = 'es' | |
| LANGUAGE_COOKIE_NAME = 'language' | |
| LANGUAGES = ( | |
| ('es', 'Español'), | |
| ('en', 'English'), | |
| ) | |
| # See: https://docs.djangoproject.com/en/dev/ref/settings/#site-id | |
| SITE_ID = 1 | |
| # See: https://docs.djangoproject.com/en/dev/ref/settings/#use-i18n | |
| USE_I18N = True | |
| # See: https://docs.djangoproject.com/en/dev/ref/settings/#use-l10n | |
| USE_L10N = True | |
| # See: https://docs.djangoproject.com/en/dev/ref/settings/#use-tz | |
| USE_TZ = True | |
| ########## END GENERAL CONFIGURATION | |
| ########## MEDIA CONFIGURATION | |
| # See: https://docs.djangoproject.com/en/dev/ref/settings/#media-root | |
| MEDIA_ROOT = normpath(join(SITE_ROOT, 'media')) | |
| # See: https://docs.djangoproject.com/en/dev/ref/settings/#media-url | |
| MEDIA_URL = '/media/' | |
| ########## END MEDIA CONFIGURATION | |
| ########## STATIC FILE CONFIGURATION | |
| # See: https://docs.djangoproject.com/en/dev/ref/settings/#static-root | |
| STATIC_ROOT = normpath(join(SITE_ROOT, 'assets')) | |
| # See: https://docs.djangoproject.com/en/dev/ref/settings/#static-url | |
| STATIC_URL = '/static/' | |
| # See: https://docs.djangoproject.com/en/dev/ref/contrib/staticfiles/#std:setting-STATICFILES_DIRS | |
| STATICFILES_DIRS = ( | |
| normpath(join(SITE_ROOT, 'static')), | |
| ) | |
| # See: https://docs.djangoproject.com/en/dev/ref/contrib/staticfiles/#staticfiles-finders | |
| STATICFILES_FINDERS = ( | |
| 'django.contrib.staticfiles.finders.FileSystemFinder', | |
| 'django.contrib.staticfiles.finders.AppDirectoriesFinder', | |
| ) | |
| ########## END STATIC FILE CONFIGURATION | |
| ########## SECRET CONFIGURATION | |
| # See: https://docs.djangoproject.com/en/dev/ref/settings/#secret-key | |
| # Note: This key should only be used for development and testing. | |
| SECRET_KEY = environ.get('SECRET_KEY', '') | |
| ########## END SECRET CONFIGURATION | |
| ########## SITE CONFIGURATION | |
| # Hosts/domain names that are valid for this site | |
| # See https://docs.djangoproject.com/en/1.5/ref/settings/#allowed-hosts | |
| ALLOWED_HOSTS = [] | |
| ########## END SITE CONFIGURATION | |
| ########## FIXTURE CONFIGURATION | |
| # See: https://docs.djangoproject.com/en/dev/ref/settings/#std:setting-FIXTURE_DIRS | |
| FIXTURE_DIRS = ( | |
| normpath(join(SITE_ROOT, 'fixtures')), | |
| ) | |
| ########## END FIXTURE CONFIGURATION | |
| ########## TEMPLATE CONFIGURATION | |
| # See: https://docs.djangoproject.com/en/dev/ref/settings/#template-context-processors | |
| TEMPLATE_CONTEXT_PROCESSORS = ( | |
| "django.contrib.auth.context_processors.auth", | |
| "django.core.context_processors.request", | |
| "django.core.context_processors.debug", | |
| "django.core.context_processors.i18n", | |
| "django.core.context_processors.media", | |
| "django.core.context_processors.static", | |
| "django.core.context_processors.tz", | |
| "django.contrib.messages.context_processors.messages", | |
| 'oscar.apps.search.context_processors.search_form', | |
| 'oscar.apps.promotions.context_processors.promotions', | |
| 'oscar.apps.checkout.context_processors.checkout', | |
| 'oscar.apps.customer.notifications.context_processors.notifications', | |
| 'oscar.core.context_processors.metadata', | |
| ) | |
| # See: https://docs.djangoproject.com/en/dev/ref/settings/#template-loaders | |
| TEMPLATE_LOADERS = ( | |
| 'django.template.loaders.filesystem.Loader', | |
| 'django.template.loaders.app_directories.Loader', | |
| ) | |
| # See: https://docs.djangoproject.com/en/dev/ref/settings/#template-dirs | |
| TEMPLATE_DIRS = ( | |
| normpath(join(SITE_ROOT, 'templates')), | |
| OSCAR_MAIN_TEMPLATE_DIR, | |
| ) | |
| ########## END TEMPLATE CONFIGURATION | |
| ########## MIDDLEWARE CONFIGURATION | |
| # See: https://docs.djangoproject.com/en/dev/ref/settings/#middleware-classes | |
| MIDDLEWARE_CLASSES = ( | |
| # Default Django middleware. | |
| 'django.middleware.common.CommonMiddleware', | |
| 'django.contrib.sessions.middleware.SessionMiddleware', | |
| 'django.middleware.csrf.CsrfViewMiddleware', | |
| 'django.contrib.auth.middleware.AuthenticationMiddleware', | |
| 'django.contrib.messages.middleware.MessageMiddleware', | |
| 'django.middleware.clickjacking.XFrameOptionsMiddleware', | |
| 'django.contrib.flatpages.middleware.FlatpageFallbackMiddleware', | |
| ) | |
| ########## END MIDDLEWARE CONFIGURATION | |
| ########## URL CONFIGURATION | |
| # See: https://docs.djangoproject.com/en/dev/ref/settings/#root-urlconf | |
| ROOT_URLCONF = '%s.urls' % SITE_NAME | |
| ########## END URL CONFIGURATION | |
| ########## APP CONFIGURATION | |
| DJANGO_APPS = ( | |
| # Default Django apps: | |
| 'django.contrib.auth', | |
| 'django.contrib.contenttypes', | |
| 'django.contrib.sessions', | |
| 'django.contrib.sites', | |
| 'django.contrib.messages', | |
| 'django.contrib.staticfiles', | |
| 'django.contrib.flatpages', | |
| ) | |
| THIRD_PARTY_APPS = ( | |
| 'south', | |
| 'compressor' | |
| ) + tuple(get_core_apps()) | |
| # Apps specific for this project go here. | |
| LOCAL_APPS = ( | |
| ) | |
| # See: https://docs.djangoproject.com/en/dev/ref/settings/#installed-apps | |
| INSTALLED_APPS = DJANGO_APPS + THIRD_PARTY_APPS + LOCAL_APPS | |
| ########## END APP CONFIGURATION | |
| ########## LOGGING CONFIGURATION | |
| # See: https://docs.djangoproject.com/en/dev/ref/settings/#logging | |
| # A sample logging configuration. The only tangible logging | |
| # performed by this configuration is to send an email to | |
| # the site admins on every HTTP 500 error when DEBUG=False. | |
| # See http://docs.djangoproject.com/en/dev/topics/logging for | |
| # more details on how to customize your logging configuration. | |
| LOGGING = { | |
| 'version': 1, | |
| 'disable_existing_loggers': False, | |
| 'filters': { | |
| 'require_debug_false': { | |
| '()': 'django.utils.log.RequireDebugFalse' | |
| } | |
| }, | |
| 'handlers': { | |
| 'mail_admins': { | |
| 'level': 'ERROR', | |
| 'filters': ['require_debug_false'], | |
| 'class': 'django.utils.log.AdminEmailHandler' | |
| } | |
| }, | |
| 'loggers': { | |
| 'django.request': { | |
| 'handlers': ['mail_admins'], | |
| 'level': 'ERROR', | |
| 'propagate': True, | |
| }, | |
| } | |
| } | |
| ########## END LOGGING CONFIGURATION | |
| ########## WSGI CONFIGURATION | |
| # See: https://docs.djangoproject.com/en/dev/ref/settings/#wsgi-application | |
| WSGI_APPLICATION = '%s.wsgi.application' % SITE_NAME | |
| ########## END WSGI CONFIGURATION | |
| ########## AUTH CONFIGURATION | |
| AUTHENTICATION_BACKENDS = ( | |
| 'oscar.apps.customer.auth_backends.Emailbackend', | |
| 'django.contrib.auth.backends.ModelBackend', | |
| ) | |
| ########## END AUTH CONFIGURATION |
Folder structure:
settings (folder):
| __init__.py
| base.py
| local.py
| production.py
| test.py
| """Development settings and globals.""" | |
| from os.path import join, normpath | |
| from base import * | |
| ########## DEBUG CONFIGURATION | |
| # See: https://docs.djangoproject.com/en/dev/ref/settings/#debug | |
| DEBUG = True | |
| # See: https://docs.djangoproject.com/en/dev/ref/settings/#template-debug | |
| TEMPLATE_DEBUG = DEBUG | |
| ########## END DEBUG CONFIGURATION | |
| ########## EMAIL CONFIGURATION | |
| # See: https://docs.djangoproject.com/en/dev/ref/settings/#email-backend | |
| EMAIL_BACKEND = 'django.core.mail.backends.console.EmailBackend' | |
| ########## END EMAIL CONFIGURATION | |
| ########## DATABASE CONFIGURATION | |
| # See: https://docs.djangoproject.com/en/dev/ref/settings/#databases | |
| DATABASES = { | |
| 'default': { | |
| 'ENGINE': 'django.db.backends.postgresql_psycopg2', | |
| 'NAME': environ.get('DATABASE_NAME', ''), | |
| 'USER': environ.get('DATABASE_USER', ''), | |
| 'PASSWORD': environ.get('DATABASE_PASS', ''), | |
| 'HOST': '', | |
| 'PORT': '', | |
| } | |
| } | |
| ########## END DATABASE CONFIGURATION | |
| ########## CACHE CONFIGURATION | |
| # See: https://docs.djangoproject.com/en/dev/ref/settings/#caches | |
| CACHES = { | |
| 'default': { | |
| 'BACKEND': 'django.core.cache.backends.locmem.LocMemCache', | |
| } | |
| } | |
| ########## END CACHE CONFIGURATION | |
| ########## TOOLBAR CONFIGURATION | |
| # See: https://github.com/django-debug-toolbar/django-debug-toolbar#installation | |
| INSTALLED_APPS += ( | |
| 'debug_toolbar', | |
| ) | |
| # See: https://github.com/django-debug-toolbar/django-debug-toolbar#installation | |
| INTERNAL_IPS = ('127.0.0.1',) | |
| # See: https://github.com/django-debug-toolbar/django-debug-toolbar#installation | |
| MIDDLEWARE_CLASSES += ( | |
| 'debug_toolbar.middleware.DebugToolbarMiddleware', | |
| ) | |
| # See: https://github.com/django-debug-toolbar/django-debug-toolbar#installation | |
| DEBUG_TOOLBAR_CONFIG = { | |
| 'INTERCEPT_REDIRECTS': False, | |
| 'SHOW_TEMPLATE_CONTEXT': True, | |
| } | |
| ########## END TOOLBAR CONFIGURATION | |
| ########## HAYSTACK CONFIGURATION | |
| HAYSTACK_CONNECTIONS = { | |
| 'default': { | |
| 'ENGINE': 'haystack.backends.simple_backend.SimpleEngine', | |
| }, | |
| } | |
| ########## END HAYSTACK CONFIGURATION |