-2

我在 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 %}

不工作。有什么想法吗?

4

1 回答 1

7

默认情况下,Django 尽可能使用 Unicode。总的来说,这是一件好事。

您获得 Unicode 字符串的原因是该get()方法返回您正在拆分的 Unicode 字符串。

这应该不是问题 - Django 将按照您的期望在任何地方接受和处理 Unicode 字符串。事实上,上面链接的 Django 文档建议采用 Python 3.x 样式并将 Unicode 作为默认字符串:

正如我们在 1.5 版的 Django 代码中所做的那样,我们建议您__future__在代码中从库中导入 unicode_literals。然后,当您特别想创建一个字节串文字时,在字符串前面加上'b'。

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

于 2012-06-13T19:12:03.067 回答