add query args to build() urls if needed
authorTero Marttila <terom@fixme.fi>
Mon, 09 Feb 2009 06:04:15 +0200
changeset 53 01429f140b06
parent 52 2136cdc95b86
child 54 3fa90f00c0c4
add query args to build() urls if needed
urltree.py
--- a/urltree.py	Mon Feb 09 05:46:28 2009 +0200
+++ b/urltree.py	Mon Feb 09 06:04:15 2009 +0200
@@ -650,7 +650,12 @@
         assert segments
         
         # join
-        return '/'.join(segment for is_default, segment in segments)
+        url = '/'.join(segment for is_default, segment in segments)
+        
+        # build query args
+        query_args = dict((key, type.build(values[key])) for key, (type, default) in self.query_args.iteritems() if key in values)
+
+        return "%s%s" % (url, '?%s' % ('&'.join('%s=%s' % tup for tup in query_args.iteritems())) if query_args else '')
 
     def __str__ (self) :
         return '/'.join(str(label) for label in self.label_path)