2012-08-16 26 views
11

在金字塔结构,功能和route_pathroute_url被用来产生从路由结构的网址。所以,如果我有路线:金字塔route_url与附加查询参数

config.add_route('idea', 'ideas/{idea}') 

我能够生成URL它使用

request.route_url('idea', idea="great"); 

但是,有时我可能需要添加额外的GET参数生成的URL像:

idea/great?sort=asc 

如何做到这一点?

我已经试过

request.route_url('idea', idea='great', sort='asc') 

但没有奏效。

回答

26

您可以添加额外的查询参数的URL传递_query字典

request.route_url('idea', idea='great', _query={'sort':'asc'}) 
+1

如果你回答你自己的问题,你没有理由不接受它;-) – 2012-08-16 19:41:51

5

如果使用真子模板,_query={...}将无法​​正常工作;你需要做:

${request.route_url('idea', idea='great', _query=(('sort', 'asc'),))} 

2元组的元组作为一个字典。

+0

我使用的是鲭和_query {...}工作就好了,也许你可以告诉我们,为什么它不会工作? – CrackSmoker9000 2014-10-10 21:10:33

+0

@SSIgnatzSchönborn:你把'_query {...}'加上了'$ {}'吗?看来Mako模板不会嵌套大括号。也许一个新版本已经解决了这个问题?如有必要,我可以尝试使用repro,尽管我在一段时间内没碰过Mako。 – labreuer 2014-10-14 18:27:59