diff options
| author | ianb <devnull@localhost> | 2005-05-16 20:44:50 +0000 |
|---|---|---|
| committer | ianb <devnull@localhost> | 2005-05-16 20:44:50 +0000 |
| commit | a8e317c2979cbc9c8f2d4d35187da10098d2be8b (patch) | |
| tree | fb3db152932ca47f7e74d9eb0d939877319db568 /paste | |
| parent | b5eea429f9578ef227ab2ca8e40ec545c9b2df39 (diff) | |
| download | paste-a8e317c2979cbc9c8f2d4d35187da10098d2be8b.tar.gz | |
Added method to request fields
Diffstat (limited to 'paste')
| -rw-r--r-- | paste/wareweb/cgifields.py | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/paste/wareweb/cgifields.py b/paste/wareweb/cgifields.py index fc7188f..e05cf88 100644 --- a/paste/wareweb/cgifields.py +++ b/paste/wareweb/cgifields.py @@ -44,10 +44,30 @@ class Fields(UserDict): self.data = field_dict def __getattr__(self, attr): + # @@: I don't like this. Should it give a KeyError? + # should it exist at all? return self.data.get(attr) def getlist(self, name): + """ + Return the named item as a list ([] if name not found, + [self[name]] if only one field passed in). + """ v = self.data.get(name, []) if isinstance(v, list): return v return [v] + + def itemlist(self): + """ + Return a list of (name, [values...]). Like .items(), + except all values becomes a list (like .getlist()). + """ + items = [] + for name, value in self.iteritems(): + if isinstance(value, list): + items.append((name, value)) + else: + items.append((name, [value])) + return items + |
