diff --git a/constance/admin.py b/constance/admin.py index 3b8f9fe..d38d6ba 100644 --- a/constance/admin.py +++ b/constance/admin.py @@ -47,7 +47,10 @@ FIELDS = { def parse_additional_fields(fields): for key in fields: - field = fields[key] + field = list(fields[key]) + + if len(field) == 1: + field.append({}) field[0] = import_string(field[0]) @@ -58,6 +61,8 @@ def parse_additional_fields(fields): if 'widget_kwargs' in field[1]: del field[1]['widget_kwargs'] + fields[key] = field + return fields diff --git a/tests/settings.py b/tests/settings.py index 361a1b9..1f2e2f6 100644 --- a/tests/settings.py +++ b/tests/settings.py @@ -57,7 +57,9 @@ CONSTANCE_ADDITIONAL_FIELDS = { 'widget': 'django.forms.Select', 'choices': (("-----", None), ("yes", "Yes"), ("no", "No")) }], - } + # note this intentionally uses a tuple so that we can test immutable + 'email': ('django.forms.fields.EmailField',), +} CONSTANCE_CONFIG = { 'INT_VALUE': (1, 'some int'), @@ -73,6 +75,7 @@ CONSTANCE_CONFIG = { 'TIME_VALUE': (time(23, 59, 59), 'And happy New Year'), 'CHOICE_VALUE': ('yes', 'select yes or no', 'yes_no_null_select'), 'LINEBREAK_VALUE': ('Spam spam', 'eggs\neggs'), + 'EMAIL_VALUE': ('test@example.com', 'An email', 'email'), } DEBUG = True diff --git a/tests/storage.py b/tests/storage.py index 338daae..36cdbde 100644 --- a/tests/storage.py +++ b/tests/storage.py @@ -28,6 +28,8 @@ class StorageTestsMixin(object): self.assertEqual(self.config.DATE_VALUE, date(2010, 12, 24)) self.assertEqual(self.config.TIME_VALUE, time(23, 59, 59)) self.assertEqual(self.config.CHOICE_VALUE, 'yes') + self.assertEqual(self.config.EMAIL_VALUE, 'test@example.com') + # set values self.config.INT_VALUE = 100 @@ -41,6 +43,7 @@ class StorageTestsMixin(object): self.config.DATE_VALUE = date(2001, 12, 20) self.config.TIME_VALUE = time(1, 59, 0) self.config.CHOICE_VALUE = 'no' + self.config.EMAIL_VALUE = 'foo@bar.com' # read again self.assertEqual(self.config.INT_VALUE, 100) @@ -54,6 +57,8 @@ class StorageTestsMixin(object): self.assertEqual(self.config.DATE_VALUE, date(2001, 12, 20)) self.assertEqual(self.config.TIME_VALUE, time(1, 59, 0)) self.assertEqual(self.config.CHOICE_VALUE, 'no') + self.assertEqual(self.config.EMAIL_VALUE, 'foo@bar.com') + def test_nonexistent(self): try: