2011-05-25 124 views
0

Django的逃逸Twitter的網址的方式,推特不喜歡當哈希劉海Twitter的網址,會出現問題: 例如http://twitter.com/#!/bugspy成爲http://twitter.com/#%21%2FbugspyDjango的 - 逃脫

和Twitter不會爲它服務。 如何解決這個問題(沒有明確地在代碼中用!來代替%21%2F)?

+0

它究竟在哪裏esscape網址?在使用urlencode過濾器的模板中?如果是這樣,在Django 1.3中可以提供一個非轉義字符列表,例如{{value | urlencode:「#!」 }} – Aldarund 2011-05-25 07:40:53

+0

在urlize模板標記中,例如 – GabiMe 2011-05-25 09:03:41

回答

0

你使用的是什麼版本的django?在Django 1.3中,它工作正常。

>>> from django.template.defaultfilters import urlize 
>>> urlize('http://twitter.com/#!/bugspy') 
u'<a href="http://twitter.com/#%21/bugspy" rel="nofollow">http://twitter.com/#!/bugspy</a> ' 

而這個網址在twitter上正常工作。 你也可以看看這個snipept:http://djangosnippets.org/snippets/1445/

+0

奇怪,我使用1.3。 (但直接在模板中(例如some_url | urlize)) – GabiMe 2011-05-25 12:38:45

+0

剛剛嘗試從模板。同樣的結果。 {{'http://twitter.com/#!/bugspy'|urlize}} - http://twitter.com/#!/bugspy。所以這是破壞你的網址的其他東西。 – Aldarund 2011-05-25 17:01:13