diff --git a/constance/config.py b/constance/config.py index 998c55c..c272802 100644 --- a/constance/config.py +++ b/constance/config.py @@ -1,13 +1,16 @@ +import os import redis -from django.conf import settings -from django.utils.importlib import import_module - try: from cPickle import loads, dumps except ImportError: from pickle import loads, dumps +def import_module(path): + package, module = path.rsplit('.', 1) + return getattr(__import__(package, None, None, [module]), module) + +settings = import_module(os.getenv('CONSTANCE_SETTINGS_MODULE', 'django.conf.settings')) class Config(object): @@ -15,8 +18,7 @@ class Config(object): def __init__(self): super(Config, self).__setattr__('_prefix', getattr(settings, 'CONSTANCE_PREFIX', 'constance:')) try: - module, class_ = settings.CONSTANCE_CONNECTION_CLASS.rsplit('.') - super(Config, self).__setattr__('_rd', getattr(import_module(module), class_)()) + super(Config, self).__setattr__('_rd', import_module(settings.CONSTANCE_CONNECTION_CLASS)()) except AttributeError: super(Config, self).__setattr__('_rd', redis.Redis(**settings.CONSTANCE_CONNECTION))