我在Django中有一个表单,其中TextField接收逗号分隔的输入,例如test1,test2,test3,test4,然后按这样分割:
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 %}
无效。有什么想法吗?
答案 0 :(得分:7)
Django uses Unicode wherever it can by default。总的来说这是一件好事。
您获取Unicode字符串的原因是get()
方法返回您要拆分的Unicode字符串。
这应该不是问题 - Django会像你期望的那样在任何地方接受和处理Unicode字符串。实际上,上面链接的Django文档建议使用Python 3.x样式并将Unicode设置为默认字符串:
正如我们在1.5版的Django代码中所做的那样,我们建议你 从代码中的
__future__
库导入unicode_literals。 然后,当你特意想要创建一个bytestring文字时, 字符串前缀为'b'。
你的循环应该完全按预期工作。