2012-08-16 15 views
11

En el marco de Pyramids, las funciones route_path y route_url se utilizan para generar URL desde la configuración de rutas. Por lo tanto, si tengo ruta:Pirámides route_url con argumentos de consulta adicionales

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

soy capaz de generar la dirección URL para que el uso de

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

Sin embargo, a veces es posible que quiera añadir parámetros GET adicionales para generar URL como:

idea/great?sort=asc 

¿Cómo hacer esto?

He tratado

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

Pero eso no funcionó.

Respuesta

26

Puede añadir argumentos adicionales de consulta a la URL que pasa el diccionario

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

si está respondiendo su propia pregunta no tiene excusa para no aceptarla ;-) –

5

_query Si está utilizando plantillas Mako, _query={...} no va a funcionar; en su lugar, debe hacer:

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

La tupla de 2 tuplas funciona como un diccionario.

+0

Estoy usando mako y _query {...} funcionó bien, tal vez nos puede decir por qué no va a funcionar ? – CrackSmoker9000

+0

@ SSIgnatzSchönborn: ¿Adjuntaste tu '_query {...}' con '$ {}'? Parecía que las plantillas de Mako no harían llaves anidadas. Tal vez una nueva versión ha remediado eso? Podría probar una reproducción si es necesario, aunque no he tocado a Mako desde hace tiempo. – labreuer

Cuestiones relacionadas