2012-06-14 30 views
0

使用包含空格的Unicode(希伯來語特定字符串)是否存在問題?使用帶有空格的Unicode字符串作爲Django url變量

其中一些還包含「%」等字符。

我遇到一些問題,因爲這是我的第一個Django項目,我希望在進一步調試之前排除這個問題。

如果有一個已知的Django問題,這種類型的url是否有解決方法?

我知道我可以重新格式化文本以解決其中的一些問題,但由於我正在準備一個使用原始開放政府數據集的網站(完全合法),我希望儘可能堅持原始格式。

感謝您的幫助

回答

1

的Django不應該在這個問題的URL(使用Unicode URL有任何問題,或空白,雖然你可能要小心,以確保空白的urlecoded(%20)。

無論哪種方式,不過,用網址中的空白只是一種糟糕的形式,除非它被urlencoded,否則不能保證工作,那麼這只是另一件值得擔心的事情。最好讓任何字段最終成爲URL的一部分SlugField(所以空格不是' t允許開始)或在通過slugify運行該值之後再將其置於URL中:

模板中:

http://domain.com/{{ some_string_with_spaces|slugify }}/ 

或者在Python代碼:

from django.template.defaultfilters import slugify 

u'http://domain.com/%s/' % slugify(some_string_with_spaces) 
+0

謝謝克里斯,那麼使用%,那有什麼問題嗎? – alonisser

+0

除非你通過某種類型的字符串插值運行它(例如我的python代碼使用'slugify')。然後,在字符串部分(即不是傳入的變量)中,您需要通過在另一個「%」前加上字符串來轉義它。例如,'%%'在字符串插值後會以'%'結尾。 –

1

就拿是什麼讓一個無效的(或有效)的URL相當全面的討論,看看here

+0

這是關於URL相當全面的問題,但我的問題是不是有效的URL,但關於Django的URL變量..有點不同,不是嗎? – alonisser