fixed setattr on "rd" attribute

This commit is contained in:
Ales Zoulek 2010-08-23 13:34:04 +02:00
parent 671263aeb0
commit b8bbbe3a65

View file

@ -10,19 +10,22 @@ class Config(object):
def __init__(self):
try:
module, class_ = settings.CONSTANCE_CONNECTION_CLASS.rsplit('.')
self.rd = getattr(import_module(module), class_)()
self._rd = getattr(import_module(module), class_)()
except AttributeError:
self.rd = redis.Redis(**settings.CONSTANCE_CONNECTION)
self.rd = connection
self._rd = redis.Redis(**settings.CONSTANCE_CONNECTION)
def __getattr__(self, key):
if key.startswith('_'):
return super(Config, self).__getattr__(key, value)
default, decode, help_text = settings.CONSTANCE_CONFIG[key]
result = self.rd.get("%s%s" % (self.prefix, key))
result = self._rd.get("%s%s" % (self.prefix, key))
if result is None:
result = default
setattr(self, key, default)
return decode(result)
def __setattr__(self, key, value):
self.rd.set("%s%s" % (self.prefix, key), value)
if key.startswith('_'):
return super(Config, self).__setattr__(key, value)
self._rd.set("%s%s" % (self.prefix, key), value)