2012-06-13 69 views
-2

我在Django中有一個表單,TextField接收逗號分隔的輸入,例如: TEST1,TEST2,TEST3,TEST4,然後將其分裂像這樣:爲什麼python/django在split()後返回一個unicode列表

test = request.POST.get('test', '').split(',') 

然後保存到一個Postgres數據庫模型

,然後檢索和顯示

然而,當顯示時,返回分裂列表是在unicode的,

[u'test1', u'test2', u'test3', u'test4'] 

而不是所希望

['test1', 'test2', 'test3', 'test4'] 

這是爲什麼?這個問題是我無法弄清楚如何顯示Django模板頁面中的數組的每個元素 - 常規

{% for element in list %} 
    <p>{{ element }}</p> 
{% endfor %} 

不起作用。有什麼想法嗎?

+1

正如我在答案中所解釋的,您的循環應該與預期完全一致。你有什麼輸出,你不期待? –

+0

你爲什麼不*想要unicode? –

回答

7

Django uses Unicode wherever it can by default。一般來說這是一件好事。

你得到Unicode字符串的原因是get()方法返回一個你正在分割的Unicode字符串。

這應該不是問題 - Django將接受和處理任何地方的Unicode字符串,就像您期望的那樣。事實上,Django文檔上面鏈接建議去Python的3.x的風格,使統一的默認字符串:

由於我們在Django代碼從1.5版做,我們建議從__future__庫您 進口unicode_literals在你的代碼中。 然後,當你特別想要創建一個字節串文字時, 在字符串前加'b'。

您的循環應該完全按照預期工作。

相關問題