add support for default values to http.Request.get_post
authorTero Marttila <terom@fixme.fi>
Mon, 16 Feb 2009 01:09:58 +0200
changeset 69 2e93ba90fb92
parent 68 d60e732f2109
child 70 add1c1f7831c
add support for default values to http.Request.get_post
http.py
--- a/http.py	Sat Feb 14 19:24:57 2009 +0200
+++ b/http.py	Mon Feb 16 01:09:58 2009 +0200
@@ -147,16 +147,28 @@
         # just check REQUEST_METHOD
         return (self.env['REQUEST_METHOD'].upper() == 'POST')
     
-    def get_post (self, name) :
+    class _nodefault : pass
+    def get_post (self, name, default=_nodefault) :
         """
-            Get the value of the given POST field
+            Get the value of the given POST field.
+
+            If the optional `default` arg is given, it is returned if the key is not found
         """
         
         # sanity-check
         assert self.post_data
         
-        # return the FieldStorage value
-        return self.post_data[name].value
+        if name in self.post_data :
+            # return the FieldStorage value
+            return self.post_data[name].value
+        
+        elif default != self._nodefault :
+            # return the default value
+            return default
+
+        else :
+            # fail
+            raise KeyError(name)
 
 class Response (object) :
     """