summaryrefslogtreecommitdiff
path: root/paste/wsgilib.py
diff options
context:
space:
mode:
authorianb <devnull@localhost>2005-12-05 09:25:25 +0000
committerianb <devnull@localhost>2005-12-05 09:25:25 +0000
commitc6944a849d21424c4ff68c70d46fc7c325a2dfa0 (patch)
tree7a5febbf70964aa5113a1012161720b900cfd153 /paste/wsgilib.py
parentfab15602c81d1b59c257988b868ce94073c6e833 (diff)
downloadpaste-c6944a849d21424c4ff68c70d46fc7c325a2dfa0.tar.gz
Handle lists in variable parsing better
Diffstat (limited to 'paste/wsgilib.py')
-rw-r--r--paste/wsgilib.py25
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: