added support for dir() on config object

This commit is contained in:
Ales Zoulek 2010-08-23 17:10:44 +02:00
parent 6eb97a7768
commit d4ad6cdbf4
2 changed files with 12 additions and 8 deletions

View file

@ -17,13 +17,13 @@ from constance import config
FIELDS = {
bool: fields.BooleanField,
int: fields.IntegerField,
long: fields.IntegerField,
Decimal: fields.DecimalField,
str: fields.CharField,
datetime: fields.DateTimeField,
float: fields.FloatField,
bool: (fields.BooleanField, {'required': False}),
int: (fields.IntegerField, {}),
long: (fields.IntegerField, {}),
Decimal: (fields.DecimalField, {}),
str: (fields.CharField, {}),
datetime: (fields.DateTimeField, {}),
float: (fields.FloatField, {}),
}
@ -31,7 +31,8 @@ class ConstanceForm(forms.Form):
def __init__(self, *args, **kwargs):
super(ConstanceForm, self).__init__(*args, **kwargs)
for name, (default, help_text) in settings.CONSTANCE_CONFIG.items():
self.fields[name] = FIELDS[type(default)](label=name)
field_class, kwargs = FIELDS[type(default)]
self.fields[name] = field_class(label=name, **kwargs)
def save(self):
for name in self.cleaned_data:

View file

@ -32,3 +32,6 @@ class Config(object):
def __setattr__(self, key, value):
self._rd.set("%s%s" % (self._prefix, key), dumps(value))
def __dir__(self):
return settings.CONSTANCE_CONFIG.keys()