2012-06-13 52 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'。

您的循环应该完全按照预期工作。

相关问题