tickets: 88
This data as json
id | created | changetime | last_pulled_from_trac | stage | status | component | type | severity | version | resolution | summary | description | owner | reporter | keywords | easy | has_patch | needs_better_patch | needs_tests | needs_docs | ui_ux |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
88 | 2005-07-19 16:57:51 | 2007-07-03 23:03:29 | 2022-03-06 03:19:41.163208 | Accepted | closed | Core (Other) | defect | trivial | fixed | Configuration should be more forgiving to users who forget the trailing comma. | It is really easy for users to forget the trailing comma in configuration settings that should be a tuple, resulting in weird errors. In order to help keep (new) users from getting frustrated, a string should be converted into a tuple for these settings. Here is a patch to implement this: {{{ Index: django/conf/settings.py =================================================================== --- django/conf/settings.py (revision 211) +++ django/conf/settings.py (working copy) @@ -29,9 +29,16 @@ except ImportError, e: raise EnvironmentError, "Could not import DJANGO_SETTINGS_MODULE '%s' (is it on sys.path?): %s" % (me.SETTINGS_MODULE, e) + +# a list of settings that should be converted into tuples if they are strings: +tuple_settings = ["INSTALLED_APPS","TEMPLATE_DIRS"] + for setting in dir(mod): if setting == setting.upper(): - setattr(me, setting, getattr(mod, setting)) + setting_value = getattr(mod, setting) + if setting in tuple_settings and type(setting_value) == str: + setting_value = (setting_value,) #In case the user forgot the comma. + setattr(me, setting, setting_value) # save DJANGO_SETTINGS_MODULE in case anyone in the future cares me.SETTINGS_MODULE = os.environ.get('DJANGO_SETTINGS_MODULE', '') }}} Note that I only put two entries in the tuple_settings list, as they are the only ones I know of. If there are more, they should be added. | adrian | mmarshall | 0 | 0 | 0 | 0 | 0 | 0 |