Archivo settings a nivel de APP¶
Hay varias formas para tener configuraciones a nivel de aplicación.
# Opción 1
Crear archivo settings.py
en la app
from django.conf import settings
MI_CONFIGURACION = getattr(settings, 'MI_CONFIGURACION', 'valor por defecto')
Si no existe MI_CONFIGURACION
en django.conf.settings
le asigna un valor por defecto.
# Opción 2
Crear archivo settings.py
from django.conf import settings as default_settings
class AppSettings(object):
def __setattr__(self, key, value):
if key != key.upper():
raise KeyError
self.__dict__[key] = getattr(default_settings, key, value)
settings = AppSettings()
settings.MI_CONFIGURACION = 'valor por defecto'
AppSettings
podría estar en un archivo mas global a nivel de proyecto, por ejemplo en
utils/default_settings.py
from django.conf import settings as default_settings
class AppSettings(object):
def __setattr__(self, key, value):
if key != key.upper():
raise KeyError
self.__dict__[key] = getattr(default_settings, key, value)
settings = AppSettings()
Y luego a nivel de aplicación en el archivo settings.py
from utils.default_settings import settings
settings.MI_CONFIGURACION = 'Mi valor por defecto'
En todos los casos, para usarlo desde un archivo *.py
from .conf import settings as myapp_settings
print(myapp_settings.MI_CONFIGURACION)
Si MI_CONFIGURACION
tiene un valor en settings.py
(archivo de configuración por defecto de Django)
devolverá el valor de settings.MI_CONFIGURACION
, en caso contrario, app.settings.MI_CONFIGURACION