2011-03-25 21 views
6

estoy usando esta línea a la a url, main_id y user_tag_list al controlador:¿Cómo pasar una url como un parámetro url cuando hay un signo de interrogación en él?

self.response.out.write(""" 

<a href="/tc?url=%s&main_id=%s&user_tag_list=%s" title="edit tag set">edit tag set</a> 

""" % 
(item.url, main_id, item.tag_list)) 

esto funciona bien, excepto que cuando ya hay un signo de interrogación en el (el primer parámetro) pasó url que puede ya no conseguir el main_id con

main_id = self.request.get("main_id") 

en el controlador de destino, en vez me sale el error

m = Main.get_by_id(int(main_id)) 
ValueError: invalid literal for int() with base 10: '' 

¿Hay alguna forma de evitar esto?

Respuesta

9

lo que desea es utilizar urllib.quote

>>> import urllib 
>>> urllib.quote('http://www.google.com?q=Zombie+Apocalypse') 
'http%3A//www.google.com%3Fq%3DZombie%2BApocalypse' 

Así:

urllib.quote(item.url) 
1

urllib.quote debe ayudar con esto.

Cuestiones relacionadas