python - Django ORM 和 Unicode 数据

标签 python django orm unicode django-models

我使用以下模型来存储有关页面的信息:

class Page(models.Model):
    title = models.TextField(blank = False, null = False)

新数据保存正确,我在那里保存 Unicode 数据(很多非 ASCII 标题)。 但是当我执行查询时:

page = Page.objects.filter(id = 1)

page.title 看起来很奇怪:

u'\u042e\u0449\u0435\u043d\u043a\u043e'

我可能做错了什么? 谢谢。

更新:真的,当我打印 page.title 时 - 它看起来不错。 但是我需要将它转储到 JSON,所以在这样的代码之后:

dumps({'title': page.title})

一切看起来都很糟糕。

更新 2:感谢大家指出这个行为是正确的。但是 unicode 转义字符串太长了。我能以某种方式将它们翻译成 utf-8 吗?

最佳答案

你没有做错任何事。您是否尝试过打印(或在网页中输出)?

In [1]: l = u'\u042e\u0449\u0435\u043d\u043a\u043e'

In [2]: print l
Ющенко

关于python - Django ORM 和 Unicode 数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2280855/

相关文章:

python - 通过文件上传从模型生成表单

java - Hibernate JPA一对一保存子类实体

python - 将自定义 SQL 添加到 Django 中的 WHERE 子句中,而不使用 .raw()

java - 在 JPA 查询中使用 group by 和 having

python - 在 python 中操作路径

python - 通过 id 删除 Python 列表中的重复项

python - 使用 Django 在 AWS 上使用 EC2 对 Websockets 进行故障排除

python - 如何找到覆盖屋顶孔洞所需的最少瓷砖数量

python - 当第 1 列 > 0 且第 2 列 <= 0 时,如何将第 1 列的值分配给第 2 列

django - 如何强制 django ModelForm 使用模型中的 `verbose_name` 作为标签?