使用包含空格的Unicode(希伯來語特定字符串)是否存在問題?使用帶有空格的Unicode字符串作爲Django url變量
其中一些還包含「%」等字符。
我遇到一些問題,因爲這是我的第一個Django項目,我希望在進一步調試之前排除這個問題。
如果有一個已知的Django問題,這種類型的url是否有解決方法?
我知道我可以重新格式化文本以解決其中的一些問題,但由於我正在準備一個使用原始開放政府數據集的網站(完全合法),我希望儘可能堅持原始格式。
感謝您的幫助
使用包含空格的Unicode(希伯來語特定字符串)是否存在問題?使用帶有空格的Unicode字符串作爲Django url變量
其中一些還包含「%」等字符。
我遇到一些問題,因爲這是我的第一個Django項目,我希望在進一步調試之前排除這個問題。
如果有一個已知的Django問題,這種類型的url是否有解決方法?
我知道我可以重新格式化文本以解決其中的一些問題,但由於我正在準備一個使用原始開放政府數據集的網站(完全合法),我希望儘可能堅持原始格式。
感謝您的幫助
的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)
謝謝克里斯,那麼使用%,那有什麼問題嗎? – alonisser
除非你通過某種類型的字符串插值運行它(例如我的python代碼使用'slugify')。然後,在字符串部分(即不是傳入的變量)中,您需要通過在另一個「%」前加上字符串來轉義它。例如,'%%'在字符串插值後會以'%'結尾。 –