diff options
| author | ianb <devnull@localhost> | 2005-12-05 09:25:25 +0000 |
|---|---|---|
| committer | ianb <devnull@localhost> | 2005-12-05 09:25:25 +0000 |
| commit | c6944a849d21424c4ff68c70d46fc7c325a2dfa0 (patch) | |
| tree | 7a5febbf70964aa5113a1012161720b900cfd153 /paste/wsgilib.py | |
| parent | fab15602c81d1b59c257988b868ce94073c6e833 (diff) | |
| download | paste-c6944a849d21424c4ff68c70d46fc7c325a2dfa0.tar.gz | |
Handle lists in variable parsing better
Diffstat (limited to 'paste/wsgilib.py')
| -rw-r--r-- | paste/wsgilib.py | 25 |
1 files changed, 14 insertions, 11 deletions
diff --git a/paste/wsgilib.py b/paste/wsgilib.py index e51f1a4..89efd63 100644 --- a/paste/wsgilib.py +++ b/paste/wsgilib.py @@ -82,18 +82,21 @@ def parse_formvars(environ, all_as_list=False, include_get_vars=True): keep_blank_values=1) formvars = {} for name in fs.keys(): - value = fs[name] - if not value.filename: - value = value.value - if name in formvars: - if isinstance(formvars[name], list): - formvars[name].append(value) + values = fs[name] + if not isinstance(values, list): + values = [values] + for value in values: + if not value.filename: + value = value.value + if name in formvars: + if isinstance(formvars[name], list): + formvars[name].append(value) + else: + formvars[name] = [formvars[name], value] + elif all_as_list: + formvars[name] = [value] else: - formvars[name] = [formvars[name], value] - elif all_as_list: - formvars[name] = [value] - else: - formvars[name] = value + formvars[name] = value if environ['REQUEST_METHOD'] == 'POST' and include_get_vars: for name, value in parse_querystring(environ): if name in formvars: |
