diff options
Diffstat (limited to 'django/contrib/admin/utils.py')
| -rw-r--r-- | django/contrib/admin/utils.py | 20 |
1 files changed, 15 insertions, 5 deletions
diff --git a/django/contrib/admin/utils.py b/django/contrib/admin/utils.py index a2f2e9fa7b..b52300756b 100644 --- a/django/contrib/admin/utils.py +++ b/django/contrib/admin/utils.py @@ -83,15 +83,25 @@ def unquote(s): return "".join(res) +def flatten(fields): + """Returns a list which is a single level of flattening of the + original list.""" + flat = [] + for field in fields: + if isinstance(field, (list, tuple)): + flat.extend(field) + else: + flat.append(field) + return flat + + def flatten_fieldsets(fieldsets): """Returns a list of field names from an admin fieldsets structure.""" field_names = [] for name, opts in fieldsets: - for field in opts['fields']: - if isinstance(field, (list, tuple)): - field_names.extend(field) - else: - field_names.append(field) + field_names.extend( + flatten(opts['fields']) + ) return field_names |
