2012-06-13 58 views
1

我有這種模式:蟒蛇/ Django的正則表達式和Unicode字符串包含 '#' 號

url(r'^(?P<slug>.+)-prod(?P<product_id>[0-9]+).html$', 'product_detail', name='product_detail',) 

它正常工作時,我有:

"some unicode characters"-prod"some numbers".html 

,但是當我有 '#'登錄「一些unicode字符」它不匹配。的Python/Django的/重截斷字符串的#

例如第一個字符,如果我有:

"some unicode # string"-prod"some numbers".html 

Django會搜索匹配

"some unicode " 

任何人都有同樣的問題?

+0

[爲什麼URL的哈希部分不在服務器端?](http://stackoverflow.com/questions/3664257/why-the-hash-part-of-the-url-is -not-內式服務器端) – Alasdair

回答

3

#是一個特殊字符,因爲它涉及到URL。你不應該在URL中使用它,除非它真的在頁面中指明一個錨點。如果你堅持使用它,它應該是urlencoded(即%23),你應該應該甚至能夠讓Django的urlresolver匹配urlencoded版本。