LOCAL_SETTINGS = True # avoid recursive imports BRANCH = '{{ project_branch }}' from {{ project_name }}.settings import * import initialize import logging LOCAL_LOGGING_PREFIX = "%s %%(message)s" % BRANCH logging.basicConfig(format=LOCAL_LOGGING_PREFIX, level=logging.DEBUG) configuration = initialize.environment(BRANCH) SITE_ID = 1 TEMPLATES[0]['DIRS'].append(configuration.paths.django.templates) # # NOTE: a lot of the code in these local settings files are automated and you # might be inclined to take them out and move them into the main settings.py # file. That would be a mistake. These automatic files AT THE VERY LEAST have # one variable, and that is WHICH BRANCH CONFIGURATION FILE ARE WE LOOKING AT. # Once I set that file, THEN all the rest of the information can be automated. # So all these automated info needs to be here. DATABASES = { 'default': { 'ENGINE': 'django.db.backends.{db_backend}'.format( db_backend=configuration.server.database.backend), 'NAME': '{db_name}'.format(db_name=configuration.server.database.name), 'USER': '{db_user}'.format(db_user=configuration.server.database.user), 'PASSWORD': '{db_pass}'.format( db_pass=configuration.server.database.password), 'HOST': '{db_host}'.format(db_host=configuration.server.database.host), 'PORT': '{db_port}'.format(db_port=configuration.server.database.port), } } # # directory from which we serve static files # # NOTE: both STATIC and MEDIA roots are getting their values from the # initialization files that are set up above. Also, MEDIA_ROOT is being set # to something called "paths.server.media.dynamic" - the names are different, # but it means the same thing. # # MEDIA_ROOT is the dynamic media information that the web server, user or # admin # will be adding and taking out. It's why I call it "dynamic" STATIC_ROOT = configuration.paths.server.media.static MEDIA_ROOT = configuration.paths.server.media.dynamic # directories from which we search for static files to place in STATIC_ROOT # these static files are located within the project root as opposed to the # server root location STATICFILES_DIRS = ( os.path.join(configuration.paths.project.root, "share", "media"), ) # debug and debug toolbar settings DEBUG = True TEMPLATES[0]['OPTIONS']['debug'] = DEBUG USE_DEBUG_TOOLBAR = DEBUG # allow template debug outputs on {{ project_branch }} environment INTERNAL_IPS = ['127.0.0.1', '127.0.0.2', '127.0.0.3', ] ALLOWED_HOSTS = [configuration.project.extendedname, configuration.project.host] # ----------------------------------------- # Debug logging to the console # convenience variable naming, otherwise it's too long to deal with file_debug_handler = configuration.logging.django.handlers.file_debug LOGGING = { 'version': 1, 'formatters': { 'verbose': { 'format': "%(levelname)s %(asctime)s %(module)s %(process)d" " %(thread)d %(message)s" }, 'simple': { 'format': '%(levelname)s %(message)s' }, 'code': { 'format': "%(module)s:%(funcName)s - %(message)s" }, }, 'handlers': { file_debug_handler.name.project: { 'level': 'DEBUG', 'class': 'logging.FileHandler', 'filename': file_debug_handler.path.project, 'formatter': 'code' }, file_debug_handler.name.server: { 'level': 'DEBUG', 'class': 'logging.FileHandler', 'filename': file_debug_handler.path.server, 'formatter': 'code' }, 'console': { 'level': 'DEBUG', 'class': 'logging.StreamHandler', 'formatter': 'simple' }, 'null': { 'level': 'DEBUG', 'class': 'logging.NullHandler', } }, 'loggers': { 'django.debug': { # use the console for logging 'handlers': [ 'console', file_debug_handler.name.project, file_debug_handler.name.server ], 'level': 'DEBUG', 'propagate': True, }, } }